Warum löscht IE8 unter XP und Win7 Virtual Machine den Verlauf, während er dieselbe Website mit Javascript-Routing durchsucht?

389
Siddharth Pandey

Ich verwende sammy.js mit meiner asp.net mvc-Webanwendung für clientseitiges Routing, um eine Benutzererfahrung auf einer Seite bereitzustellen. Ich habe eine Demoanwendung erstellt, die in IE9 + und anderen modernen Browsern gut funktioniert. Während ich im IE8 unter XP und Win7 laufe, habe ich jedoch ein merkwürdiges Problem. Beim Durchsuchen dieser Demoseite speichert der IE8 die Vor- und Zurücknavigation für das erste Durchsuchen und vergisst dann vollständig den Browserverlauf oder die Schritte, die ich zum Aufrufen der aktuellen Seite unternommen habe. Daher wird die Zurück-Schaltfläche deaktiviert, da kein Browserverlauf verknüpft ist. Dies ist in anderen Browsern nicht der Fall und sie erinnern sich an die Seiten, die ich browse.

Dies ist der Link zu dem Skript, das ich geschrieben habe, wo ich meine sammy.js-Routen definiert habe.

Die Struktur meiner App sieht folgendermaßen aus: Ein Benutzer:

  • kommt zu http://www.abc.com/
  • wird eine Anmeldeseite als #/Route angezeigt
  • Wenn authentifiziert, wird die Startseite angezeigt, die das Ergebnis einer Ajax-Nachaktion ist.
  • Auf der Startseite gibt es viele Optionen, um zur Detailseite zu gelangen, die das Ergebnis einer Ajax-Post-Aktion ist.

Nun speichert der IE8 nur einige dieser Schritte, löscht jedoch weiterhin die Verlaufselemente in der Browsersitzung. Ich habe versucht, den Skript-Debugger von IE zu verwenden, und es wurde kein Fehler angezeigt.

Auf jeder Route habe ich auch versucht, alert(history.length);eine andere Zufallszahl zu verwenden, die ich nicht erwartet habe, wie jedes Mal, wenn ich eine neue Seite besuche. Dann habe ich diese Supportinformationen auf der Microsoft-Website gefunden. Das Deaktivieren der automatischen Absturzwiederherstellungsfunktion hat in diesem Fall nicht geholfen.

Ich kann den Grund für dieses seltsame Problem nicht herausfinden. Die Codes funktionieren gut für andere Browser. Ich habe auch versucht, IE8 auf XP und Win7 zurückzusetzen.

Es wäre wirklich hilfreich, wenn mir jemand sagen könnte, was ich vermisse oder falsch mache.

Prost

0

1 Antwort auf die Frage

0
Siddharth Pandey

Ich habe wirklich viele Dinge ausprobiert, um mögliche Gründe für das oben genannte Problem zu identifizieren. Sogar meinen Javascript-Navigationscode und den überprüften serverseitigen Code neu geschrieben.

Aber der einzige Ort, an dem ich die Lösung gefunden habe, ist vor Ort: Enhancedie, das besagt, dass es einen Fehler in IE8 gibt, der wie folgt lautet:

IE0012: IE Travellog beschädigt, wenn Sie von einer Seite mit einem großen POST-Formular zurück / weg navigieren Wenn ein Formulareingabefeld mit einem Wert länger als 523.659 Zeichen vorhanden ist, löscht der IE möglicherweise das Travellog der aktuellen Sitzung, wenn Sie sich von der Seite weg bewegen Historie), Deaktivieren der Vor- und Zurück-Taste. Repros in IE6 & IE7.

Es gibt folgende Lösungen, für die Sie sich entscheiden können:

  • Suchen Sie nach dem Eingabefeld, das wie oben erwähnt viele Zeichen enthält, und beheben Sie Ihr Problem.
  • Wenn Sie die Kontrolle über das System haben, auf dem IE8 verwendet wird, können Sie den folgenden Registrierungsschlüssel auf diesem Computer hinzufügen. Es ist kein Schlüssel vorhanden, daher müssen Sie einen neuen hinzufügen:

    [HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ TravelLog] "MaxSize" = dword: ffffffff

Ich bin sehr entspannt, diese Informationen zu finden, da ich sehr lange damit verbracht habe, dieses Problem zu lösen. Hoffe das hilft jemandem.