2012-10-29 4 views
5

Ich habe ein sehr seltsames Problem mit einer Website in Google Chrome:Google Chrome intermittierendes Ladeproblem: Programmgesteuertes Deaktivieren von "Netzwerkaktionen vorhersagen ..." möglich?

Wenn ich auf einen Link (von einer Listenansicht zu einer Detailseite) klicke, hängt die Seite und ich Chrome wirft einen Dialog auf und fragt mich um die Seite zu töten. Die Seite wird niemals angezeigt.

Aber Wenn ich direkt auf die Seite navigiere, lädt es in Chrome ohne Probleme. Beide Aktionen (Klick auf einen Link oder Navigieren zu der Seite) funktionieren gut in Safari und Firefox.

Die Deaktivierung von "Vorhersage von Netzwerkaktionen zur Verbesserung der Seitenladefunktion" in den Chrome-Einstellungen scheint das Problem zu beheben, aber dies ist keine praktikable Lösung, da ich die Browsereinstellungen meines Benutzers nicht kontrollieren kann.

Einige weitere Einzelheiten über die Situation:

  • Der Link ist nur eine ganz normale <href>. Ich mache kein Javascript click() Handhabung oder irgendetwas anderes. Ich verwende keine "Prefetch" oder "Prerender" <link> Elemente.

  • Die Seiten werden mit dem W3 html5 Validator validiert.

  • Die Seite, die ich navigiere, lädt viele JS, verwendet Knockout.js zum Rendern und lädt eine Videodatei über HTTP.

  • Bei den Gelegenheiten, dass die Seite Last tut (nach einer sehr langen Wartezeit), erscheinen Chrome die gesamte Seite im Hintergrund gemacht zu haben und geladen alle externen Ressourcen. Wenn ich direkt zu der Seite navigiere, lädt sie nichts (ich benutze knockout, um eine 'bitte wait' Nachricht anzuzeigen, während die externen Ressourcen geladen werden).

  • Wenn ich die Netzwerkanforderungen mit Charles einzuloggen, scheint es, dass Chrome den HTML-Code für die Seite sofort lädt, aber die Anforderungen für die externen Ressourcen scheinen ewig dauern.

  • Wenn ich die CPU-Auslastung im Aktivitätsmonitor betrachte, verwendet 'Google Chrome Renderer' 100% CPU beim Laden von href, aber nur 30% beim Laden direkt von der Seite.

  • ich die neueste Version von Chrome (22.0.1229.94)

Also - meine Frage

Gibt es eine Möglichkeit „, um programmatisch zu deaktivieren Netzwerkaktionen voraus Seite zu verbessern Belastungsleistung "?

Oder gibt es eine andere Lösung für dieses Problem?

Antwort

0

Ich ging gerade durch hohe unbeantwortete Fragen Ich stieß auf diese, und ich kam einmal in eine ähnliche Situation aus ganz anderen Gründen (Chrome war eine riesige Datei vorladen, die ich nicht leisten konnte, für jeden Benutzer zu laden). Die ziemlich einfache Lösung, die ich damals angewendet habe, war, den Link durch Javascript zu öffnen, anstatt einfach href, was Wunder wirkte. So oder so, Ihr Problem könnte bereits gelöst sein, aber angesichts der Anzahl der Aufrufe dachte ich, ich könnte zumindest diese kleine Erkenntnis teilen.