Y a-t-il un moyen de savoir si une ressource est déjà dans le cache du navigateur? p>
Nous instrumenons une fraction de nos vues de page côté client afin que nous puissions obtenir de meilleures données sur la rapidité avec laquelle les pages sont en cours de chargement pour nos utilisateurs. La première fois que les utilisateurs arrivent sur notre site, un certain nombre de ressources (JS, CSS, images) sont mis en cache par le navigateur, de sorte que leur page initiale sera donc plus lente que les suivantes. P>
À l'heure actuelle, ces données sont mélangées, il est donc difficile de raconter une charge de page initiale à partir d'une villaie ultérieure qui est lente pour une autre raison. J'adorerais un moyen de navigateur pour vérifier si le cache est déjà apprêté, de sorte que je puisse séparer les deux types de pageView et les analyser séparément. P>
3 Réponses :
Vous avez besoin d'un plug-in pour le faire. Firebug peut vous indiquer sur l'onglet "NET", une fois que vous l'avez installé (pour Firefox). Javascript lui-même ne peut pas voir le trafic http du navigateur. P>
Comme je l'ai mentionné dans la question, je fais une instrumentation côté client sur de vrais vues. Il est peu probable que je reçois beaucoup de nos utilisateurs à installer Firebug, en particulier ceux qui n'utilisent pas Firefox.
Je n'aime pas la vérité n'est pas une raison pour un vote à la baisse. Merci. :(
Votre réponse pourrait être bien sur une question différente, mais c'est inutile ici. Assurez-vous que la réponse la plus utile est au sommet de la page semble une utilisation raisonnable de voter de haut en bas.
Il n'y a pas d'API JavaScript pour vérifier si une ressource est mise en cache. Je pense que le mieux que vous puissiez faire est de vérifier combien de temps il a fallu pour charger les ressources et se soucher de ceux avec des temps de chargement plus courts ensemble.
en haut de la page: P>
var fooProbablyCached = fooLoadTime < 200; // Took < 200ms to load foo.gif var barProbablyCached = barLoadTime < 200; // Took < 200ms to load bar.gif
Merci, Annie. Cela fait un sens parfait. Certains navigateurs sont bizarres lorsque vous mélangez des blocs de script et de chargement de ressources externes, cela pourrait donc avoir une incidence sur des téléchargements parallèles; Je vais essayer et voir.
Bonjour William, en regardant BrowserScope, il ressemble à ce que vous voulez surveiller est une feuille de style suivie immédiatement d'un script inline: BROWSERSCOPE.ORG/?v=top&category=Network (les autres problèmes de téléchargement parallèle s'appliquent à des scripts externes).
Mon serveur compte une variable et l'envoyer avec l'en-tête Content-MD5. Le script client vérifiera si l'en-tête Content-MD5 existe et est supérieur à celui-ci. Si oui, la réponse n'est pas mise en cache. Je fais quelque chose comme ça pour la raison de la sécurité.
Inconvénient: Vous devez attendre que la ressource soit chargée avant de pouvoir dire s'il était mis en cache ou non ...
Vous devez utiliser Transferser :
window.performance.getEntriesByName("https://[resource-name].js")[0].transferSize
Cache-Control code> en-tête, Transferser code> devrait être 0. li>
- Si vous désactivez la mise en cache (onglet Réseau -> Désactiver le cache) et recharger,
Transferser Code> devrait être> 0. LI>
ul> p>
Malheureusement, Safari ne prend pas en charge .Transfersize code> :(