2014-10-07 5 views
8

Ich habe Chrome Pre-Rendering-Funktionalität unter Verwendung von mit"Cookie Konflikt" in Google Chrome Prerender

<link rel="prerender" href="/path" /> 

Aber nach dem lates-Updates, wenn ich versuche, [chrome://net-internals/#prerender] mit zu debuggen. Es zeigt, dass das Pre-Rendering aufgrund von "Cookie Conflict" abgebrochen wurde.

Ich versuchte zu debuggen, um sicherzustellen, wenn ein Ajax-Aufruf die Cookies nach dem Laden der Seite ändert, aber keine gefunden. Trotzdem wird der Prerender abgebrochen. Früher funktionierte es gut mit den vorherigen Chromversionen.

+0

Ich denke, es ist ein bekannter Fehler. Sieh dir das an: https://groups.google.com/a/chromium.org/forum/#!msg/prerender/vcjoQmwwpM0/H0Q17LS1qW8J – newDevGeek

Antwort

1

Was Sie sehen, ist auf Cookie-Konflikte zurückzuführen.

Beispiel:

Angenommen a.com verwendet ein Cookie Gruß = ... ein Benutzer Gruß, um anzuzeigen, will begrüßt werden.
Angenommen, die Begrüßung ist auf "Hallo" eingestellt. Wir prerender a.com/a..html, präsentiert "gruß = hallo". Wenn der Server a.html generiert, wird es die 'Hallo' aus dem Cookie auf der Webseite, die vorgerendert wird. Jetzt

, bevor der Prerender gezeigt wird, nehme eine andere Seite auf a.com Updates Gruß an „Gruß = howdy“ Als nächstes nehme an, der Benutzer a.com/a.html navigiert. Der Prerender würde ausgetauscht werden. Allerdings sah es eine andere Version des "Gruß" -Cookies als den Wert, den es jetzt hat. Daher zeigt die Seite immer noch "Hallo" und nicht den (aktualisierten) "Howdy".

Intern verfolgt alle Cookies ausgesetzt während eines Prerender (entweder in HTTP-Header oder Javascript). Wenn einer davon geändert wird, bevor der Prerender angezeigt wird, wird der Prerender ungültig.

Diese Art der Ungültigmachung ist, was Sie beobachtet haben.