Ich habe versucht, nach diesem zu suchen, aber es ist ziemlich schwierig, in Worte zu fassen.
Grundsätzlich wird unsere Website für die meisten Benutzer problemlos funktionieren. Manchmal aber werden diejenigen von uns, die die Seite den ganzen Tag über ziemlich stark benutzen, plötzlich total festgefahren. Alles dreht sich einfach an seinem Platz. Die Seite selbst ist immer noch in Ordnung - alle anderen können noch dazu kommen, aber der einzelne Benutzer ist festgefahren. Ein Neustart des Browsers löst das Problem im Allgemeinen nicht, selbst wenn Sie Ihre Cookies explizit löschen.
Sie können die Seite jedoch in der Regel problemlos öffnen, indem Sie zu einem anderen Browser wechseln. Wenn Sie in Firefox festgefahren sind, können Sie es normalerweise öffnen und weiter gerade gut im IE arbeiten. Dies kann auf beide Arten geschehen (Sie können den IE bändigen und zu Firefox wechseln).
Macht das überhaupt Sinn? Es ist, als würde etwas mit der Sitzung brechen, aber ich weiß nicht, was das verursachen würde und die Sitzung sollte zurückgesetzt werden, indem der Browser neu gestartet wird und Cookies gelöscht werden und was nicht.
Irgendwelche Ideen?
[Bearbeiten, um zu klären, sorry, sollte dies zu Beginn enthalten] Server ist ein sehr einfacher LAMP-Stack auf RedHat mit Apache 2.2.3, PHP 5.2.11, MySQL 5.0.45 (wir haben überlegt, MySQL zu aktualisieren, aber ich glaube nicht, dass dies das Problem ist). Es ist eine Standardkonfiguration für Rackspace, also glaube ich nicht, dass wir etwas Exotisches machen, außer vielleicht dem Zend Optimizer.
Wir verwenden eine Menge Javascript / jquery, aber es ist alles ziemlich normales Zeug und ich würde nicht erwarten, dass ein Speicherleck den anderen Browser nicht beeinflusst, obwohl ich falsch liegen könnte.
Auch die CPU- und Speicherauslastung unseres Servers hat niemals die 25% -Marke überschritten, selbst bei Spitzen, und die Spitzen scheinen nicht mit diesem Phänomen zu korrelieren.
Klingt ziemlich ähnlich, als hätten Sie eine Art Session-Locking-Problem. Sie stellen fest, dass selbst das Entfernen von Cookies nicht hilft, wodurch Sitzungssperren weniger plausibel erscheinen, aber ich habe keine Details zu Ihrer Implementierung, so dass es immer noch möglich ist.
Ich habe zwei Fragen, die beantwortet werden müssen, um einen Einblick in das Problem zu bekommen.
Haben Sie eine Sitzung geöffnet, während Sie Inhalt streamen und versuchen, auf einer anderen Anfrage von der Sitzung zu lesen oder in diese zu schreiben?
Haben Sie eigene Sitzungen implementiert?
Wenn Sie Ja oder vielleicht Frage 1 beantworten, ist das wahrscheinlich die Wurzel Ihres Problems.
Wenn Sie Ja zu Frage zwei beantworten, besteht das Problem weiterhin, wenn Sie die Sitzungsverwaltung auf Standard-PHP umstellen? Sie könnten einen Fehler in der Sitzungsbehandlung haben.
Heute,
Es hört sich so an, als würden Sie auf der Serverseite pro Sitzung eine Art von Informationen beibehalten.
Behalten Sie Sitzungs-IDs oder Benutzer-IDs auf dem Server? Vielleicht fügen Sie bei jeder nachfolgenden eingehenden Anfrage mehr und mehr Informationen zu einigen persistenten Daten hinzu?
Vielleicht ist auch die ankommende User-Agent-Zeichenfolge beteiligt, weshalb das Ändern von Browser-Typen funktioniert, wenn das einfache Neustarten einer Sitzung in demselben Browsertyp nicht funktioniert?
Haben Sie gesehen, ob eine Sitzung über eine Zeitgrenze, z. die Stunde oder Mitternacht, wenn Sie den gleichen Browser verwenden, setzt das Problem auch zurück? Versuchen Sie vielleicht, die UA-Zeichenfolge zu spoofen, um zu sehen, ob dadurch auch das Problem zurückgesetzt wird.
BTW Welche Apache-Module laufen auf Ihrem Server? Auch 2.2.3 ist eine ziemlich alte Version, die Sie in Betracht gezogen haben, zu aktualisieren?
Es sieht so aus, als wäre es ein Memory Leaks , das Ihr JavaScript erstellt. Überprüfen Sie Ihre Prozessliste und sehen Sie, wie viel Speicherplatz der Browser zu Beginn benötigt und nach einer halben Stunde, in der Sie Ihre Website durchsuchen und neu laden. Wenn der Speicherverbrauch wesentlich höher ist als angenommen, dann müssen Sie Ihren JavaScript-Code auf nicht zurückgegebene Methoden, nicht unterbrochene Schleifen und so weiter überprüfen. Normalerweise hilft es.
Interessanterweise hat niemand Werbung als Ursache vorgeschlagen ( Nazariys Antwort könnte auf diejenigen angewendet werden, obwohl ).
Überprüfen Sie grundsätzlich die auf Ihrer Website angezeigten Anzeigen, es gibt eine Menge Mist in diesen Dingen und sie basieren immer auf der Benutzererkennung, was erklären würde, warum der Neustart des Browsers nicht hilft.
All dies erklärt natürlich nicht, warum es nach dem Neustart des gleichen Browsers hängen bleibt - obwohl Sie nicht erwähnt haben, dass der Cache geleert wurde. Möglicherweise liegt also eine fehlgeschlagene Anfrage in Ihrem Browser-Cache oder Zwischenspeicher vor oder Proxy, so können Sie versuchen, zu sehen, ob dies passiert, wenn Sie das Caching vollständig in Ihrem Browser ausschalten. (Bei Firefox kann dies beispielsweise einfach über die Symbolleiste des Web Developer erfolgen.)
Sie sollten auch sehen, welche Anfragen hängen bleiben, verwenden Sie Fiddler und Firebug, um das zu sehen.
Speicherlecks, die durch Javascript verursacht werden, wirken sich auf den Browser aus, da es sich um eine Clientseite handelt. Jquery compress oder min können Sie nicht sicher sein, wo das Problem liegt, und es ist wahrscheinlich, dass die Ursache Probleme oder das Skript, das es verwendet.
Tags und Links php session performance apache cross-browser