2009-09-17 7 views
0

J'ai des onglets qui sont alimentés par ajax. Ainsi, à chaque fois qu'un onglet est cliqué, toutes les données sont chargées, y compris javascripts. Donc, s'ils cliquent sur l'onglet A par exemple, cliquez sur l'onglet B et enfin sur l'onglet A. Tous les scripts de l'onglet A seront chargés deux fois.Comment fonctionne la mise en cache lorsqu'un fichier javascript est chargé?

Maintenant, je me demande comment fonctionne la mise en cache. La deuxième fois qu'ils cliquent sur l'onglet A, combien de temps ces scripts vont-ils télécharger? Ou sera-ce aussi lent que la première fois?

Merci

Répondre

2

En supposant une charge assez régulière, le script chargera la première fois, et être tiré à partir du cache à partir de là.

Sauf si vous faites quelque chose de difficile. Tout comme vous pouvez charger un script énorme sur la première page d'un site plus traditionnel, et inclure ce script des pages suivantes, mais après le chargement de la première page, le navigateur le retirera (typiquement) du cache.

Utilisez firebug et observez le comportement.

+0

Je devine que les choses dans le script ne vont pas aller plus vite mais c'est vrai? – chobo2

+0

@ chobo2: Si le navigateur ré-analyse JavaScript, même si ce JavaScript réside dans un fichier qui est retourné à partir du cache, le navigateur devra toujours JIT le JavaScript dans ce fichier. Il est hautement improbable qu'un navigateur tente de conserver le script JITed après que le contenu de la page contenant ce script a été ignoré. Ainsi, bien que les fichiers JavaScript externes mis en cache accélèrent le chargement, le JavaScript doit toujours être mis en JIT à chaque fois. Mais honnêtement, le temps de chargement est probablement beaucoup, beaucoup plus long que le temps JITing indépendamment. –

0

Si vous chargez la même URL, le navigateur utilisera la version mise en cache. Si vous voulez contourner la mise en cache, ajoutez "?" suivi d'une chaîne aléatoire à l'URL chaque fois que vous l'appelez.

Questions connexes