2010-07-23 5 views
6

wenn eine GET-Anfrage wirdPerforming GET-Anfrage, bevor Seite zu verlassen - Javascript

wie folgt
$(window).bind('beforeunload', function() { 
    // GET request 
}); 

gemacht und die Seite wird verlassen, bevor die GET-Anfrage abgeschlossen ist,

wird den Zielserver noch die Anfrage bearbeiten? Oder wird es irgendwie verschwinden?


Ich möchte ein Serverdaten auf „beforeunload“ Brennen senden, aber ohne unnötige ms vom Benutzer zu stehlen.

Es wäre sehr nützlich, wenn mir jemand helfen könnte.

Antwort

1

Wenn es eine asynchrone Anfrage ist, kann der Server sie verarbeiten (wenn sie die Anfrage erhält), aber ich weiß nicht, ob Sie garantieren können, dass die Anfrage durchlaufen wird, bevor die Seite entladen wird oder wenn sie bearbeitet wird - Dies kann vom tatsächlichen Webserver abhängen (jemand anders kann mehr Informationen haben). Wenn Sie eine synchrone Anfrage machen, wartet die Seite, bis die Anfrage durchläuft und eine Antwort zurückkommt (in diesem Fall ist die Verarbeitung garantiert). Dies bedeutet jedoch, dass Ihr Browser gesperrt wird, bis diese Anfrage abgeschlossen ist, was möglicherweise nicht wünschenswert ist.

+0

Ich stimme zu, ich würde es für nichts tun, das sich auf die Anfrage verlassen muss. –

+0

@Joe Ja, im Allgemeinen ist das nicht sehr zuverlässig. –

+0

@Joe @Vivin danke für die Antworten! =) Es muss eine Möglichkeit geben, mehr als 90% Erfolgsquote zu erreichen? – RadiantHex

1

In den meisten Fällen ja, aber es hängt vom Webanwendungsserver ab. Einige können die Trennung erkennen und mit der Anfrage aufhören.

+1

Danke für die Antwort! =) Ich benutze Python und schaue mir verschiedene Netzwerkbibliotheken an. – RadiantHex

Verwandte Themen