Nous avons identifié que les caches du navigateur complet sont la cause d'un problème sur notre extranet. Cela n'affecte qu'un petit nombre de nos utilisateurs, mais nous aimerions les alerter au problème et leur donner des conseils sur la manière de résoudre le problème pour eux-mêmes. P>
Nous aimerions utiliser un système similaire à celui utilisé par Gmail. Lorsqu'il détecte que la cache de votre navigateur est pleine Strike> ne se comporte pas comme elle le devrait, elle montre un message d'avertissement indiquant aux utilisateurs que leur cache est plein et qu'il peut causer des problèmes avec Gmail, ainsi qu'un lien avec une page d'aide Gmail sur effacer le cache de votre navigateur . p>
Est-ce que quelqu'un sait s'il y a des ressources là-bas ou des exemples d'utiliser JavaScript pour détecter que le cache du navigateur est Full Strike> se comporter mal? P>
Merci. P>
Clarification: strong> Ce que nous essayons réellement de détecter, je suppose, n'est pas si le cache est complet, mais plutôt si un script, que nous avons configuré côté serveur à stocker. Dans le cache, est à nouveau demandé du serveur - de manière à ce que le navigateur se comporte étrangement, ou comme si son cache ne se comporte pas comme il le devrait. P>
Clarification supplémentaire: strong> Merci à tous pour les mises à jour de la mise en cache. Nos scripts sont envoyés avec les en-têtes corrects et nous ne voyons que ce problème dans IE6 et IE7 - les navigateurs Mozilla et WebKit ne semblent pas être affectés - mais je ne suis toujours pas sûr de savoir comment nous allions utiliser exactement JavaScript et / ou XMLHTTPEQuRequest pour vérifier si un objet a été récupéré ou non à partir du cache, nous permettant ainsi de vérifier si le cache se comporte mal. P>
3 Réponses :
Le cache du navigateur mise à jour: em> strong>
Sur la base de votre clarification, vous devez vous assurer que tout script que vous envoyez au client est de manière appropriée em> mise en cache ... ce qui signifie: p>
expire les en-têtes code> et comment modifier le chemin d'URL sur vos fichiers lorsque vous effectuez des modifications de script pour vous assurer de "casser" le cache)) li>
Étant donné que suggérez-vous d'attendre que la page ait fini de charger et de tirer ensuite une demande asynchrone pour les (en-tête du même script que nous chargons dans la section Code> de la page , puis vérifiez si cela a été chargé à partir du cache ou du serveur?
Cela ne fonctionnera probablement pas tel quel. Mais c'est juste une idée:
envisagez d'envoyer un en-tête pour que votre application ne cache jamais votre contenu et de le faire expirer immédiatement. P>
Pourquoi? C'est complètement contre ce que nous essayons de faire - nous voulons que ce contenu particulier soit le cache.
Indépendamment, que cela soit réellement possible (j'en doute), quand un cache de navigateur est-il considéré complet, car il s'agit essentiellement d'une file d'attente où les données les plus anciennes sont supprimées, lorsque l'espace est nécessaire. Ou quand est-ce pas plein? Être non complet nécessiterait que l'utilisateur le vidait régulièrement, quelle que soit la majorité des gens ne font jamais ...
Je suis curieux de savoir comment et pourquoi vous avez déterminé que le cache complet i> était la question, par opposition à des données contradictoires dans le cache ou à une autre chose. Quoi qu'il en soit, si vous êtes la même personne qui a eu beaucoup d'abus sur comp.lang.javascript ( groups.google.co.uk/group/comp.lang.javascript/Browse_threa d / ... ), j'espère que vous obtiendrez un meilleur traitement sur Stackoverflow ...
Heh ... Non, ce n'était pas moi sur comp.lang.javascript. Ce que je suppose que je demande vraiment, c'est ce que Gmail fait pour détecter que le cache de votre navigateur est complet i> et de montrer ce message à nos utilisateurs finaux. Via votre lien et par une lecture rapide, j'ai réussi à trouver cette discussion ( groups.google.com/group/comp.lang.javascript/browse_frm/thth ead / ... ) qui explique ce qui va probablement continuer et comment le faire. Merci!
@Rotora: Je suppose que ce que nous essayons réellement de détecter, ce n'est pas si le cache est plein (comme vous, je ne suis pas sûr que ce soit réellement possible de le faire, d'où la question), mais si un script, que nous ont configuré le côté serveur à stocker dans le cache, est à nouveau demandé à partir du serveur - de manière à ce que le navigateur se comporte comme si son cache est plein.
On dirait que le cache gmail-is-complet Avertissement est uniquement affiché via HTTP. J'ai lu indiqué que le message disparaît lors de la navigation Gmail avec HTTPS. Source
Parmi les abus sur comp.lang.javascript était la réponse, comme c'est généralement le cas là-bas. Une mine d'or des informations javascript de vrais experts, entourée de beaucoup d'autres choses.