Ik wil proberen een httpRequestObject meermalen te gebruiken. Ik heb een RequestObjectWrapper-object gemaakt, dat zorgt voor het aanmaken van het requestObject en het verwerken van de requests. Voor het doen van requests gebruik ik de functie makeRequest (zie hieronder). Die werkt de eerste keer prima, maar wanneer ik in IE de functie een tweede keer aanroep, wordt de callback functie van onreadystatechange niet meer uitgevoerd. In Firefox gaat het gewoon goed. Kan iemand mij uitleggen wat ik verkeerd doe?
Hieronder staat alleen de makeRequest functie; de volledige code staat hier.
Hieronder staat alleen de makeRequest functie; de volledige code staat hier.
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| RequestObjectWrapper.prototype.makeRequest = function(url) { if (this.rObj.readyState == 0 || this.rObj.readyState == 4) {//check if rObj is ready to make a new request var _this = this;//create reference to this wrapper this.rObj.onreadystatechange = function() { //triggers this wrapper's parent-element's processReqData method upon succes //anonymous function gebruiken om variabelen (_this) uit de scope van makeRequest te kunnen gebruiken if (_this.rObj.readyState == 4) { if (_this.rObj.status == 200) { try { _this.parentObj.processReqData(_this.rObj); } catch (error) { } } } } this.rObj.open("GET", url, true); this.rObj.send(null); } } |
[ Voor 5% gewijzigd door Verwijderd op 18-04-2007 17:47 . Reden: url naar volledige code toegevoegd ]