Il y a deux caches à prendre en compte.
solution 1 html purement statique + js inline
1ere ouverture:
connexion -> download -> mise en cache web -> compilation js -> mise en cache js -> exécution
ouverture suivantes:
lecture dans le cache web -> compilation js -> mise en cache js -> exécution
solution 2 html dynamique + js inline
toutes les ouvertures
connexion -> download -> mise en cache web -> compilation js -> mise en cache js -> exécution
solution 3 html statique + js externe
1ere ouverture:
connexion -> download -> mise en cache web -> affichage
connexion -> download -> compilation js -> mise en cache js -> exécution
ouverture suivantes:
lecture dans le cache web -> affichage
lecture dans le cache js -> exécution
solution 4 html dnamique + js externe
1ere ouverture:
connexion -> download -> mise en cache web -> affichage
connexion -> download -> compilation js -> mise en cache js -> exécution
ouverture suivantes:
connexion -> download -> mise en cache web -> affichage
lecture dans le cache js -> exécution
en conclusion lorsque le js est externe il est compilé et mis dans le cache js déjà compilé
il est donc dispos pour tous les appel suivants, il est simplement exécuté.
c'est pour cette raison qu'on voit des appli qui n'ont qu'une seul JS contenant tout le code même si tout n'est pas utilisé dès le début.
le cas le pire (et pourtant celui que l'on voit le plus souvent) le js enbarqué dans du html dynamique (génré)
dans ce cas le js est rechargé à chaque appel mais en plus il est recompilé à chaque fois avant d'être exécuté.
perso je penche donc toujours vers l'externalisation.
mais je suis quelqu'un de pargmatique
si le js est tout petit (juste quelque ligne) le coût de recompilation est négligeable.
dans mes dev j'ai généralement un seul html qui est
1 2 3 4 5 6 7
| <html>
<head>
<link href="app.css" />
<script src="app.js" />
</head>
<body />
</html> |
la question ne se pose donc pas.
A+JYT
Partager