Wie lange wartet der Browser nach einer Ajax-Anfrage?
Wie lange der browser warten soll, bevor ein Fehler angezeigt wird, bevor die server-Antworten für eine Anfrage? Kann in dieser Zeit unbegrenzt sein?
InformationsquelleAutor der Frage Taras Lukavyi | 2011-09-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie über einen jQuery -$.ajax-Aufruf können Sie die timeout-Eigenschaft Steuern Sie die Menge der Zeit, bevor eine Anforderung gibt mit einem timeout-status. Der timeout wird in Millisekunden eingestellt, so wird einfach ein sehr hoher Wert. Sie können auch legen Sie es auf 0 für "unlimited", aber meiner Meinung nach sollte man einfach einen hohen Wert bei, statt.
Hinweis: unlimited ist eigentlich der Standard aber die meisten Browser haben default-timeouts, die betroffen sein wird.
Wenn ein ajax-Aufruf zurückgegeben wird, aufgrund von timeout wird es wieder mit einem Fehler-status "timeout", dass Sie behandeln können, die mit einem separaten Gehäuse, wenn nötig.
Also, wenn Sie wollen, legen Sie ein Zeitlimit von 3 Sekunden, und behandeln Sie das timeout hier ist ein Beispiel:
InformationsquelleAutor der Antwort Tj Kellie
Ja und Nein. Ja der server kann es tun oder konfiguriert werden, um so zu tun, Nein, der Browser (ich weiß nicht, über version/Verteiler-Besonderheiten) können timeouts aktiviert.
Gibt es 2 Lösungen, die aber für die Erreichung/emuliert diese über HTTP:
InformationsquelleAutor der Antwort smassey
Können Sie erklären, ein wenig mehr über das, was Sie zu erreichen versuchen, - haben Sie einen lang andauernden Prozess auf einem server, möchten Sie ändern die Einstellungen nur auf einem lokalen Rechner oder sind Sie nach einem Weg, um die Verwaltung für eine große Anzahl von Benutzern?
Wie lange der browser warten, hängt von einer Reihe von Faktoren, z.B. wo der timeout Auftritt - ist es auf der TCP-Ebene, dem server oder der lokalen browser?
Wenn Sie haben einen lang andauernden Prozess auf einem server, und Sie möchten, um eine Seite aktualisieren danach die typische Art und Weise, es zu handhaben ist, führen Sie den langen Prozess, der asynchron und Benachrichtigen die Kunden, wenn es fertig ist z.B. ein ajax-Aufruf, der den server abfragt, oder HTTP 1.1 verwenden und dienen eine Mitteilung stream an den client.
In jedem Fall ist es immer noch möglich, die Verbindung geschlossen werden, so dass der Kunde immer noch die Möglichkeit, es wieder öffnen.
InformationsquelleAutor der Antwort Andy Davies
Fand ich, dass im Falle einer normalen (HTML-Seite) Anforderung, Browser laufen auf timeout nach cca. 30 Sek. Es ist wichtig, weil andere participiants wahrscheinlich folgt es: proxies, Router (Router tun in diesem Spiel? Ich bin mir nicht sicher). Ich bin mit 4 Sek lange server-side-Verzögerung (wenn es nichts zu senden an den client), und meine AJAX-client führt einen weiteren HTTP-request-immediatelly (ich bin im lokalen Netzwerk, kein internet-lag). 4 sec ist lang genug, um nicht zu überlasten die server und Netzwerk mit frequentiert Umfragen, und kurz genug ist, für den Fall, wenn irgendwie eine Umfrage fällt aus der Reihe, die der Kunde nicht erkennen kann und verarbeiten.
Außerdem, dort sind andere Probleme mit comet (long-HTTP-request): browser-Begrenzung der Anzahl der gleichzeitigen HTTP-Anforderung, die Handhabung der client-Seite Ereignisse (muss an den server gesendet immediatelly), server - /Netzwerk-down-Erkennung und Wiederherstellung, multi-user-handling und vieles mehr.
InformationsquelleAutor der Antwort ern0