Que signifie “blocage” dans Firebug Net Panel?

J’utilise Firebug 1.5.2 et, tout en testant un site avant la sortie de la production, je peux voir un temps considérable consommé par le blocage de certaines parties des requêtes.

Que signifie exactement le “blocage”?

“Bloquer” auparavant (les versions antérieures de FireBug) s’appelait “Queuing”. Cela signifie en fait que la demande est en attente de connexion disponible. Pour autant que je sache, le nombre de connexions persistantes par défaut est limité dans les dernières versions de Firefox à 6, IE8 également 6. Auparavant, il était seulement 2. Il peut être modifié par l’utilisateur dans les parameters du navigateur.
Aussi, comme je sais que pendant le chargement du fichier javascript, toutes les autres ressources (css, images) sont bloquées

Le blocage est un terme utilisé pour décrire un événement qui arrête le traitement d’autres événements ou du code (dans le même thread).

Par exemple, si vous utilisez des sockets “bloquantes”, le code après que la demande de socket a été faite ne sera pas traité tant que la requête n’est pas terminée (dans le même thread).

Les activités asynchrones (non bloquantes) effectueraient simplement la requête et laisseraient un autre code s’exécuter pendant que la requête se produisait en arrière-plan.

Dans votre situation, cela signifie essentiellement que certaines parties de Firebug / le navigateur ne peuvent pas être activées tant que d’autres parties ne sont pas complètes. C’est à dire qu’il attend une image à télécharger avant de télécharger plus.

Pour autant que je sache, deux raisons font en sorte que les composants bloquent le chargement des autres.

  1. Limite imposée (mais généralement configurable) du navigateur du nombre de ressources parallèles pouvant être chargées à partir d’un hôte particulier à la fois.
  2. Javascript en ligne, ce qui peut faire attendre le navigateur et voir s’il doit absolument continuer à télécharger le rest des composants (juste au cas où le javascript redirige ou remplace le contenu de la page)

Cela signifie “attendre la connexion”. Comme expliqué dans la documentation officielle de Mozilla , “Blocage” est “Temps passé dans une queue en attente d’une connexion réseau”. Cela peut être dû au fait que Firefox atteint sa limite de connexions parallèles internes, comme expliqué ici et dans les réponses ici.

Cela peut aussi signifier “attendre parce que le serveur est occupé”. Une des raisons possibles du “blocage” des temps manque dans la documentation officielle liée ci-dessus: cela peut se produire lorsque le serveur ne peut pas fournir de connexion à ce moment-là car il est surchargé. Dans ce cas, la demande de connexion est mise en queue sur le serveur jusqu’à ce qu’elle puisse être traitée une fois qu’un processus de travail devient libre [ source ].

Au sens technique, une telle connexion n’est pas encore établie car la requête est en attente de accept() du serveur [ source ]. Et c’est peut-être pour cela qu’il est intégré à “Blocage” par Firefox, car il pourrait également être considéré comme “Temps passé dans une queue en attente d’une connexion réseau”.

(Ce comportement n’est cependant pas totalement cohérent avec Firefox 51: pour la première URL appelée dans un nouvel onglet, le délai avant l’acceptation de la demande de connexion par le serveur n’est pas pris en compte dans l’onglet “Timings”) Les deux comportements peuvent être un bug, je ne sais pas lequel.)