Bases des technologies web
Dans le traitement qui mène le navigateur jusqu'au premier affichage (le chemin de rendu critique, ou critical rendering path), un élément <script src="app.js"> sans attribut placé dans <head> arrête l'analyse du HTML à cet endroit. Quel comportement est correct si l'on ajoute l'attribut defer à cet élément ?
- AIl est exécuté dès la fin de son téléchargement, en interrompant l'analyse du HTML, et l'ordre d'exécution de plusieurs scripts n'est pas garanti
- BIl n'est ni téléchargé ni exécuté, et n'est chargé que lorsque l'utilisateur interagit avec la page
- CIl est téléchargé en parallèle de l'analyse du HTML et exécuté une fois l'analyse terminée, dans l'ordre où les scripts figurent dans le document
Afficher la réponse et l'explication
Réponse : C. Il est téléchargé en parallèle de l'analyse du HTML et exécuté une fois l'analyse terminée, dans l'ordre où les scripts figurent dans le document
Le navigateur analyse le HTML pour construire le DOM et le CSS pour construire le CSSOM, combine les deux pour déterminer ce qu'il faut afficher, calcule la position et la taille des éléments (mise en page, layout), puis dessine (paint). Un élément script sans attribut pouvant modifier le DOM, il arrête l'analyse du HTML jusqu'à la fin de son téléchargement et de son exécution. Avec defer, le téléchargement se fait en parallèle de l'analyse, et l'exécution a lieu après l'analyse, dans l'ordre du document. Avec async, le script est exécuté dès la fin de son téléchargement, et l'ordre n'est donc pas garanti.
Continuer : 9 autres questions sur Bases des technologies web