"Cookie-Konflikt" in Google Chrome Prerender

8

Ich habe die Prerendering-Funktion von Chrome mit

verwendet %Vor%

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

Ich habe versucht zu debuggen, um sicherzustellen, dass ein Ajax-Aufruf die Cookies nach dem Laden der Seite ändert, aber keine gefunden hat. Trotzdem wird der Prerender abgebrochen. Es funktionierte früher gut mit den vorherigen Builds von Chrome.

    
ashish 07.10.2014, 23:55
quelle

1 Antwort

1

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

Beispiel:

Angenommen, a.com verwendet einen Cookie gruß = ... , um eine Begrüßung anzugeben, mit der ein Nutzer begrüßt werden möchte.
Angenommen, die Begrüßung ist auf "Hallo" eingestellt. Wir prerender a.com/a.html und präsentieren " gruß = hallo ". Wenn der Server "a.html" generiert, gibt das "Hallo" aus dem Cookie auf der Webseite aus, die vorgerendert wird.

Nun, bevor der Prerender angezeigt wird, nehmen wir an, dass eine andere Seite auf a.com die Begrüßung auf " gruß = grüßend " aktualisiert. Angenommen, der Benutzer navigiert zu a.com/a.html. Der Prerender würde ausgetauscht werden. Allerdings hat er eine andere Version des "Begrüßungsplätzchens" gesehen als den Wert, den er jetzt hat. Daher wird auf der Seite immer noch "Hallo" und nicht der (aktualisierte) "Gruß" angezeigt.

Intern speichert alle Cookies , die während eines Prerenders verfügbar gemacht werden (entweder in HTTP-Headern oder in JavaScript). Wenn einige davon geändert werden, bevor der Prerender angezeigt wird, macht den Prerender ungültig.

Diese Art von Ungültigkeit ist das, was Sie beobachtet haben.

    
Tobias Gschwandtner 10.02.2016 09:52
quelle