Heim > Web-Frontend > js-Tutorial > Warum speichert iOS 6 Safari meine $.ajax-Aufrufe auch mit „No-Cache'-Headern im Cache?

Warum speichert iOS 6 Safari meine $.ajax-Aufrufe auch mit „No-Cache'-Headern im Cache?

Susan Sarandon
Freigeben: 2024-11-05 04:18:02
Original
578 Leute haben es durchsucht

Why Does iOS 6 Safari Cache My $.ajax Calls Even With `no-cache` Headers?

iOS 6 Safari: $.ajax-Aufrufe zwischenspeichern

Es wurde beobachtet, dass die Webansicht von Safari in iOS 6 sogar $.ajax-Aufrufe zwischenspeichert wenn ausdrücklich darauf hingewiesen wird, dass dies nicht der Fall sein soll. Dieses eigenartige Verhalten wurde im Zusammenhang mit PhoneGap-Anwendungen festgestellt, die Safari WebView nutzen.

Ursache des Caching-Problems

Untersuchungen haben ergeben, dass Safari POST-Anfragen im Cache speichert Es fehlen Cache-Control-Header oder sie enthalten den Header „Cache-Control: max-age=0“. Dieses Verhalten ergibt sich aus einer Interpretation der HTTP-Spezifikation, die besagt, dass POST-Antworten mit entsprechenden Headern zwischengespeichert werden können.

Lösungen

Um das Zwischenspeichern zu verhindern, ist die Cache-Kontrolle Der Header sollte auf „no-cache“ gesetzt sein. Dies kann global in Apache-Konfigurationen erreicht werden mit:

Header set Cache-Control "no-cache"
Nach dem Login kopieren

Speziell für POST-Anfragen kann dieselbe Einstellung angewendet werden mit:

SetEnvIf Request_Method "POST" IS_POST
Header set Cache-Control "no-cache" env=IS_POST
Nach dem Login kopieren

Alternativ gibt es eine Problemumgehung Funktionssignaturen ändern:

getNewRecordID(intRecordType, strTimestamp)
Nach dem Login kopieren

Durch das Hinzufügen eines Zeitstempelparameters zur Funktionssignatur ändert sich die Anforderung effektiv bei jedem Aufruf und verhindert so eine Zwischenspeicherung.

Das obige ist der detaillierte Inhalt vonWarum speichert iOS 6 Safari meine $.ajax-Aufrufe auch mit „No-Cache'-Headern im Cache?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage