Liebe JS-Spezialisten,
weil ich es nicht besser wusste (und noch immer nicht besser weiß), habe ich in meinen Scripts für AJAX-Funktionalitäten immer ein für die Applikation festes XHR-Objekt definiert. Das sah in etwa so aus:
var MyApp = {
xhr: {},
init: function () {
...
this.xhr = this.createXHR();
},
createXHR: function () {
... // Code wie [link:http://de.wikipedia.org/wiki/Xmlhttprequest#Codebeispiele_.28JavaScript.29@title=Wikipedia]
}
}
Bisher hatte ich das Gefühl (mir fehlen hier die Fakten, daher dieses Posting), dass ich ein XHR-Objekt "irgendwie speichern" muss, da es ansonsten nach Beenden der Funktion dem Garbage Collector zum Opfer fällt. Aber das wäre doch blanker Unsinn, der den Sinn dieses Objekts überhaupt in Frage stellen würde, oder nicht? Immerhin soll das Objekt von sich aus tätig werden und bei Änderungen seiner readystate-Eigenschaft mit passenden Events Dinge tun.
Ist ein XHR-Objekt so etwas wie eine besondere Form der Closure, also eines Variableninhalts, der "irgendwie überlebt"? Wann schlägt denn der GC zu, falls ich das XHR-Objekt in einer lokalen Variable speichere, um am Ende der Funktion diese dann wieder zu "vergessen"?
Ist es möglich, dass ich bei meiner obigen Vorgehensweise die Response eines XHR-Objektes "zerstöre", indem ich das Objekt verändere, weil ich einen neuen Request absetzen will? Wäre es in diesem Fall besser und einfacher, das dort abgelegte XHR-Objekt einfach durch ein neues zu überschreiben, damit das alte im Hintergrund fertig werden kann?
Wer kann mich da über die Interna des Browsers aufklären?
Liebe Grüße,
Felix Riesterer.
ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)