Maison > interface Web > js tutoriel > Pourquoi iOS 6 Safari met-il en cache mes appels $.ajax même avec des en-têtes « no-cache » ?

Pourquoi iOS 6 Safari met-il en cache mes appels $.ajax même avec des en-têtes « no-cache » ?

Susan Sarandon
Libérer: 2024-11-05 04:18:02
original
576 Les gens l'ont consulté

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

iOS 6 Safari : mise en cache des appels $.ajax

Il a été observé que la vue Web de Safari dans iOS 6 mettait en cache les appels $.ajax, même lorsqu'il est explicitement spécifié de ne pas le faire. Ce comportement particulier a été rencontré dans le contexte des applications PhoneGap, qui utilisent Safari WebView.

Cause du problème de mise en cache

Une enquête a révélé que Safari met en cache les requêtes POST qui manque d'en-têtes Cache-Control ou contient l'en-tête "Cache-Control: max-age=0." Ce comportement découle d'une interprétation de la spécification HTTP, qui stipule que les réponses POST peuvent être mises en cache avec les en-têtes appropriés.

Solutions

Pour empêcher la mise en cache, le Cache-Control l'en-tête doit être défini sur "no-cache". Ceci peut être réalisé globalement dans les configurations Apache en utilisant :

Header set Cache-Control "no-cache"
Copier après la connexion

Pour les requêtes POST spécifiquement, le même paramètre peut être appliqué en utilisant :

SetEnvIf Request_Method "POST" IS_POST
Header set Cache-Control "no-cache" env=IS_POST
Copier après la connexion

Alternativement, une solution de contournement consiste à modifier les signatures de fonction :

getNewRecordID(intRecordType, strTimestamp)
Copier après la connexion

En ajoutant un paramètre d'horodatage à la signature de fonction, la requête change effectivement à chaque appel, empêchant la mise en cache.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal