Ich möchte eine Webseite einrichten, die Daten über AJAX-Aufrufe von einem eingebetteten Webserver abfragt. Wie würde ich den Code so einrichten, dass sich eine Anfrage nicht überschneidet? Ich sollte erwähnen, ich habe sehr wenig JavaScript-Erfahrung und auch ein zwingender Grund, keine externen Bibliotheken jeder Größe größer als vielleicht 10 oder so Kilobyte zu verwenden.
Sie sollten die Möglichkeit in Betracht ziehen, Ihre AJAX-Anfrage NUR nach einer erfolgreichen Antwort vom vorherigen AJAX-Anruf neu zu starten.
%Vor% In diesem Beispiel wird ExtJS verwendet, aber Sie können sehr einfach nur XMLHttpRequest
verwenden.
HINWEIS: Wenn Sie ein genaues Intervall von x Sekunden benötigen, müssen Sie die Zeit verfolgen, die zwischen dem Start der AJAX-Anfrage und dem Start der AJAX-Anfrage verging setTimeout()
call, und subtrahieren Sie dann diese Zeitspanne von der Verzögerung. Andernfalls variiert die Intervallzeit im obigen Beispiel mit der Netzwerklatenz und mit der Zeit für die Verarbeitung der Webservice-Logik.
Ich schlage vor, dass Sie ein kleines Toolkit wie jx.js ( Quelle ) verwenden. Sie können es hier finden: Ссылка (weniger als 1k verkleinert)
So richten Sie eine Anfrage ein:
%Vor% Um es in einem Intervall einzurichten, können Sie setInterval
und eine Variable verwenden, um zu speichern, ob eine Anfrage gerade stattfindet oder nicht - wenn ja, tun wir einfach nichts:
Tags und Links javascript ajax settimeout setinterval