Frage

Ich bin prototype.js und sein Ajax-Objekt mit einem interactve Graph Widget zu implementieren. Ich erzeugen eine XML-Abfrage für die Daten der Nutzer wollen, per Post an den Server mit einem Ajax.Request, und es scheint, für immer mit Firefox zu nehmen. Die Firebug-Konsole scheint in etwa 700 ms der POST endet mit 200 OK zu zeigen, aber die onInteractive () -Prozedur ich installiert (die Prototyp wird ausgelöst, wenn Readystate == 3) mehrfach über die nächsten zwölf Sekunden feuert, und mein onSuccess Handler Prozesse dann die Daten.

Wer weiß, was hier vor sich geht, bevor ich in den Code graben?

War es hilfreich?

Lösung 2

Es stellt sich heraus, dass das, was geschah, dass Firebug die POST-Finishing wurde zeigt, wenn Readystate 4, aber die Berichterstattung nicht die gesamte Transaktion abgeschlossen, bis mein onSuccess Handler fertig war, und die mit dem Megabyte XML, die eine ganze Weile nahm . Die Umstellung auf die kompaktere JSON Darstellung anstelle von XML reduzierte den mühsamen Parsen von XML auf, mehr oder weniger:

eval(responseText); doGraph();

Danke für die Kommentare, Jungs, waren sie nicht genau das, was ich brauchte, aber sie wies mich in der richtigen Richtung, und das Feature funktioniert jetzt sehr slickly.

Andere Tipps

Mit Readystate 3, die XHR-Anforderung ist noch im Gange, so dass Ihre onInteractive Handler mehrfach auslösen können. Was tut es? Warum können Sie nicht einen Rückruf verwenden und haben es beschossen readyState === 4? Außerdem konnte man die Netto-Panel von Firebug versuchen Sie es mit ( ‚Net‘ Tab oben), um zu sehen, was die ganze Zeit nimmt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top