Souhaitez-vous créer une présentation sur le fonctionnement du navigateur, quelqu'un connaît-il la séquence exacte du cycle de vie qui se produit chaque fois qu'une URL de navigateur est demandée?
Quelles sont les étapes qui se produisent après la réception d'une réponse du serveur en termes de:
- pas tranquille si c'est même le bon ordre ...
est-ce la même chose dans tous les navigateurs ou différents navigateurs ont des cycles de vie différents?
Remarque - une réponse bien écrite avec des détails expliquant chaque étape par Ced ci-dessous. ce que je cherchais en fait était "Chemin critique de rendu" - les étapes générales du processus sont bien expliquées par d'autres bonnes réponses.
Dieu merci, et bon travail à tous!
Ce dont vous parlez est le Chemin de rendu critique.
Les points 1., 3. et 4. peuvent être repris comme tels:
Voici une ventilation de ce qui se passe derrière la scène.
1. Construire l'objet DOM.
La première étape consiste à créer le DOM. En effet, ce que vous recevez du réseau sont des octets et le navigateur utilise la soi-disant arborescence DOM. Il doit donc convertir ces octets en arborescence DOM.
Vous pouvez vérifier l'outil développeur pour voir combien de temps cela prend.
Ici, nous pouvons voir qu'il a fallu 4,938 ms.
Lorsque ce processus est terminé, le navigateur aura le contenu complet de la page, mais pour pouvoir rendre le navigateur, il doit attendre le modèle d'objet CSS, également appelé événement CSSOM, qui indiquera au navigateur à quoi les éléments devraient ressembler. une fois rendu.
2. Manipulation du CSS
Pour le CSS, c'est la même chose que ci-dessus, le navigateur doit convertir ces fichiers en CSSOM:
Le CSS est également une structure arborescente. En effet, si vous mettez une taille de police à l'élément parent, les enfants en hériteront.
C'est ce qu'on appelle le style recalculé dans l'outil de développement
CSS est l'un des éléments les plus importants du chemin de rendu critique, car le navigateur bloque le rendu de page jusqu'à ce qu'il reçoive et traite tous les fichiers CSS de votre page, CSS bloque le rendu
3. Arbre de rendu
CSSOM ET DOM sont combinés pour l'affichage.
4. Disposition
Tout doit être calculé en pixels. Ainsi, lorsque vous dites qu'un élément a une largeur de 50%, le navigateur derrière la scène le transforme en pixels:
Chaque fois qu'une mise à jour de l'arborescence de rendu est effectuée ou que la taille de la fenêtre change, le navigateur doit réexécuter la disposition.
5.Peinture
L'étape consiste à convertir tout cela en pixels à l'écran. Ceci est l'étape Paint.
Javascript
Pour le cycle de vie JavaScript, vous pouvez trouver des informations ici .
L'essentiel est que l'événement qui vous intéresse le plus est DOMContentLoaded
. C'est alors que le DOM est prêt.
Lorsque le navigateur charge initialement HTML et rencontre un
<script>...</script>
dans le texte, il ne peut pas continuer à construire DOM. Il doit exécuter le script dès maintenant. Ainsi, le contenu DOM chargé ne peut se produire qu'après l'exécution de tous ces scripts.Les scripts externes (avec src) mettent également la construction du DOM en pause pendant le chargement et l'exécution du script. Ainsi, DOM Content Loaded attend également les scripts externes.
La seule exception concerne les scripts externes avec des attributs asynchrones et différés. Ils indiquent au navigateur de poursuivre le traitement sans attendre les scripts. Ainsi, l'utilisateur peut voir la page avant la fin du chargement des scripts, bon pour les performances.
À côté de cela, où est JavaScript dans tout cela?
Eh bien, il est exécuté entre les repeints. Cependant, il bloque. Le navigateur attend que JavaScript soit terminé avant de repeindre la page. Cela signifie que si vous voulez que votre page ait une bonne réponse (beaucoup de fps), alors le JS doit être relativement peu coûteux.
Biscuits
Lors de la réception d'une requête HTTP, un serveur peut envoyer un en-tête Set-Cookie avec la réponse. Le cookie est généralement stocké par le navigateur et, par la suite, la valeur du cookie est envoyée avec chaque demande adressée au même serveur que le contenu d'un en-tête HTTP Cookie. De plus, un délai d'expiration peut être spécifié ainsi que des restrictions à un domaine et un chemin spécifiques, limitant la durée et le site vers lequel le cookie est envoyé.
Pour le réseau, cela dépasse le cadre du cycle de vie du navigateur, sur lequel porte votre question. C'est aussi quelque chose que je ne connais pas bien, mais vous pouvez lire sur TCP ici . Ce qui pourrait vous intéresser est le poignée de main =.
Sources:
Vous pouvez trouver de nombreuses explications sur ce sujet, mais je suppose que ce qui suit est l'explication la plus simple pour comprendre comment les navigateurs rendent une page Web.
J'aimerais suggérer ce qui suit à quiconque souhaite regarder ce qui se passe, c'est une réponse bon marché mais il pourrait être utile d'expliquer comment le navigateur récupère sa cascade de fichiers pour construire le contenu d'une URL (dans ce cas, un html ).
Jouez avec les paramètres. Vous devez également regarder la chronologie créée dans l'onglet Performances
Il peut être utile ici d'accélérer les performances, de sorte que vous pouvez le regarder en temps réel (lent) si c'est quelque chose que vous souhaitez démontrer.
L'important est (en utilisant une page HTML comme exemple), l'ordre de rendu/application css/exécution de javascript, dépend de l'endroit où il apparaît dans le DOM. Il est possible d'exécuter un script à tout moment après son chargement, sous réserve que les ressources requises soient disponibles. Le CSS peut faire partie du document HTML (en ligne) ou il peut provenir d'un serveur très occupé et prendre 10 à 20 secondes avant de pouvoir être appliqué. J'espère que cela vous sera utile -R
Quelques autres ressources utiles:
Plugin d'inclinaison de Firefox 3D aide à visualiser les pages Web et comment elles rendent le contenu dans différentes couches .
onglet des performances de Chrome une bonne visualisation de ce qui se passe pendant le chargement d'une page et comment l'arborescence dom est construite. Il aide à identifier les goulots d'étranglement dans le processus de rendu.
Vous pouvez voir beaucoup de fonctionnalités backend de votre navigateur comme le contenu HTML mis en cache, les images mises en cache, le cache DNS, les ports ouverts, etc. en ouvrant chrome: // net-internals /.
Je crains que vous vouliez dire quand l'URL du navigateur est demandée par l'utilisateur , parce que vous mentionnez l'autre activité, ce qui peut être beaucoup de choses.
Après avoir récupéré le document initial pouvant contenir du contenu utilisateur, du balisage, voire des images:
API
s la page peut utiliser le matériel du client (caméra, GPS, microphone, haut-parleurs, joystick, système de fichiers, etc.)Il existe de nombreux organigrammes, comme l'authentification, SSL, CORS , etc. Bien que la réponse de Ced soit très détaillée (+1!), Ce n'est que l'astuce de l'iceberg. Vous devriez peut-être EMBRASSER pour le public de présentation, votre choix.