[js] xmlhttprequest onstatechange handler verdwijnt

Pagina: 1
Acties:

  • tombo_inc
  • Registratie: December 2004
  • Laatst online: 04-02-2022
ik ben bezig met een webapplicatie waarin ik door middel van een javascript xmlhttprequest object communiceer met mijn backend op de server. nu wil ik o.a. 1 instantie van dat httprequest object sequentieel gebruiken om data op te halen. dit werkt allemaal goed maar ik stuit op een ding waarvan ik mij afvraag waarom dit zo werkt. het is namelijk zo dat je een statechange handler toe kan wijzen die bij iedere state change aangeroepen wordt. als ik nu mijn eerste request naar de server doe met mijn object dan wordt netjes bij iedere statechange die handler aangeroepen. echter bij mijn tweede request met hetzelfde object is de onstatechange eventhandler niet meer gedefinieerd, en moet ik hem dus opnieuw toewijzen alvorens ik mijn request doe.
ik vroeg mij dus af waarom na een httprequest de onstatechange eventhandler weer gereset wordt. ik vind dit tamelijk vervelend namelijk, want je moet zo iedere keer weer die eventhandler toewijzen.

Microsoft Windows: A thirty-two bit extension and graphical shell to a sixteen-bit patch to an eight-bit operating system originally coded for a four-bit microprocessor which was written by a two-bit company that can't stand one bit of competition


  • André
  • Registratie: Maart 2002
  • Laatst online: 27-11 10:04

André

Analytics dude

Hoe heb je die toewijzing toegewezen dan?

  • tombo_inc
  • Registratie: December 2004
  • Laatst online: 04-02-2022
ik heb zelf een wrapper object geschreven voor het xmlhttprequest object. daarbij geef ik bij de constructor een functie mee die dient als statehandler. die functie wijs ik als volgt toe in de constructor:
JavaScript:
1
2
3
//HTTPRequest is het xmlhttprequest object
//fStateHandler is de referentie naar de functie
this.HTTPRequest.onreadystatechange = fStateHandler

Microsoft Windows: A thirty-two bit extension and graphical shell to a sixteen-bit patch to an eight-bit operating system originally coded for a four-bit microprocessor which was written by a two-bit company that can't stand one bit of competition


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:27

crisp

Devver

Pixelated

tombo_inc schreef op dinsdag 10 juli 2007 @ 11:42:
[...]
ik vroeg mij dus af waarom na een httprequest de onstatechange eventhandler weer gereset wordt. ik vind dit tamelijk vervelend namelijk, want je moet zo iedere keer weer die eventhandler toewijzen.
Sommige browsers resetten inderdaad ook onreadystatechange als de open() method wordt uitgevoerd. Ik meen dat dat in voorgaande versies van de XMLHttpRequest specificatie (WD) ook zo was opgenomen, maar in de laatste versie lijkt het erop dat onreadystatechange wel behouden moet blijven.
Het is dus afwachten wanneer de verschillende browservendors zich gaan confirmeren aan deze standaard...

Intentionally left blank


  • tombo_inc
  • Registratie: December 2004
  • Laatst online: 04-02-2022
ok dat wilde ik even weten :)
voorlopig moet je dus even controleren of de eventhandler behouden blijft of niet, en indien nodig dus opnieuw toewijzen.
bedankt 8)

Microsoft Windows: A thirty-two bit extension and graphical shell to a sixteen-bit patch to an eight-bit operating system originally coded for a four-bit microprocessor which was written by a two-bit company that can't stand one bit of competition