2016-08-11 1 views
1

Ich arbeite an einer Webanwendung, die Push-Updates von einem Restserver mit einer langen Abfragetechnik erhält.xhr fordert Timeout an, wenn Chrome minimiert wird

Es führt setTimeout() aus, das eine Funktion ausführt, die eine GET-Anforderung xhr mit einer Zeitüberschreitung von 120 Sekunden ausführt. Außerdem sendet er dem Server einen speziellen "Accept-Wait" -Header von 60 Sekunden, der dem Server mitteilt, wann er mit 200 und keine Daten für den Client antworten soll. Dann wiederholt der Client dieses setTimeout. Dies wird für immer fortgesetzt, während der Client am Server "angemeldet" ist.

Ich habe einen Benutzer mit Chrome (er kann nur Chrome verwenden, also habe ich nicht verifiziert, ob dies in anderen Browsern reproduzierbar ist, da niemand dieses Problem reproduzieren kann). Wenn er minimiert, beginnen die GET-Anfragen aus. Das sieht für meinen Longpoller so aus, als wäre der Server ausgefallen.

Ich habe auf dem Rest-Server debuggen aktiviert und bestätigt, dass es nichts von diesem Benutzer für 2 Minuten (scheint anzuzeigen, dass die GET-Anfragen nicht aus dem Browser). Ich habe auch in der Registerkarte "Netzwerk" von Chrome-Terminal (F12) beobachtet, dass die Anfragen um 2 Minuten "abgebrochen" werden, was darauf hinweist, dass sie das Zeitlimit überschritten haben. Dieses Problem reproduziert sich auch bei Verwendung von "localhost", was Netzwerkprobleme ausschließt.

Wie kann ich weitere Informationen zu Chrome erhalten, in Bezug darauf, warum der HTTP-Traffic für diesen Nutzer nicht freigegeben wird?

Dank

+0

Ist es gelöst? –

+0

Nein ... Tatsächlich reiste ich, um den Kunden vor Ort zu besuchen und das Problem weiter zu verfolgen, aber als ich ankam, konnten sie das Problem nicht mehr reproduzieren. Ich glaube, dass es ein Netzwerkproblem oder sogar ein Netzwerksicherheitsproblem war, das parallel zu meiner Fehlerbehebung gelöst wurde. –

Antwort

0

Wenn dieses Problem nur in Google Chrome geschieht, vielleicht ist es Ihre Registerkarte verwerfen, können Sie es durch einen Flag zu deaktivieren, geben Sie die folgende URL auf der Adressleiste verhindern können und sehen, ob es aktiviert ist:

+0

Das war es leider nicht. Sie haben dies deaktiviert. In der Tat hätte ich nicht angenommen, dass der Longpolling-Timer GET-Requests aussetzen würde, wenn es deswegen wäre. –

Verwandte Themen