Christian Kruse: JS confirm

Beitrag lesen

Hallo Martin,

Schreibvorgänge darf ein GET höchstens in Caches oder Logfiles auslösen.

Das Forum übrigens verstösst an einer Stelle (bewusst) gegen dieses Gebot: bei der serverseitigen Gelesen-Markierung.

das ist wohl eine legitime und sehr sinnvolle Ausnahme von der Regel - aber selbst mit dieser Funktionalität als Nebenwirkung eines GET läuft bei jedem Request dasselbe ab und hat dasselbe Ergebnis. Einmal gelesen ist gelesen; 12mal gelesen ändert daran auch nichts.

Das ist erst dann richtig, wenn der Beitrag gelesen markiert wurde. Wenn ein Beitrag noch ungelesen ist, dann verändert der GET-Request den Status durchaus.

Die löst bei GET-Requests aus (und prüft auch, ob es ein prefetch ist und tut in dem Fall gar nichts).

Wie erkennt man denn Prefetch-Requests? Geben die sich durch bestimmte Header zu erkennen?

Ja. Verschiedene Browser-Versionen schicken verschiedene Header, aber im wesentlichen läuft es darauf hinaus: wenn einer der drei Header x-moz, x-purpose oder purpose geschickt wurde und den Wert preview oder prefetch enthält, ist es ein Prefetch-Request.

Ich war aber ungenau: Prefetch-Requests werden aber nur auf Seiten geschickt, die mit rel=prefetch oder via <link>-Element (z.B. <link rel="next">) referenziert wurden. Deshalb verwende ich in V5 diese Auszeichnungen nicht (mehr) und V5 hat diesen Check auch nicht mehr eingebaut, sondern markiert einfach jeden ungelesenen angefragen Beitrag als gelesen. Die Prüfung auf einen Prefetch-Requests war Teil von V4.

Freundliche Grüße,
Christian Kruse