web-dev-qa-db-fra.com

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 une énorme quantité de temps consommé par le `` blocage '' des parties des demandes.

Que signifie exactement le "blocage"?

46
enerB

Le "blocage" précédemment (versions antérieures de FireBug) était appelé "mise en file d'attente". Cela signifie en fait que la demande est en attente dans la file d'attente pour la 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 n'était que de 2. Il peut être modifié par l'utilisateur dans les paramètres du navigateur.
Comme je sais aussi que pendant le chargement du fichier javascript, toutes les autres ressources (css, images) sont bloquées

29
Maxym

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 "bloquants", le code après que la demande de socket a été effectuée ne sera pas traité tant que la demande n'est pas terminée (dans le même thread).

Les activités asynchrones (non bloquantes) feraient simplement la demande et laisseraient l'autre code s'exécuter pendant que la demande se produirait en arrière-plan.

Dans votre situation, cela signifie essentiellement que certaines parties de firebug/le navigateur ne peuvent pas s'activer tant que d'autres parties ne sont pas terminées. C'est à dire. il attend le téléchargement d'une image avant d'en télécharger d'autres.

5
Chris

Pour autant que je sache, deux raisons font que les composants empêchent les autres de se charger.

  1. Limite imposée par le navigateur (mais généralement configurable) 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 continuer à télécharger le reste des composants (juste au cas où le javascript redirige ou remplace le contenu de la page)
4

Cela signifie "en attente de connexion". Comme expliqué dans l'officiel documentation de Mozilla , "Blocage" est "Temps passé dans une file d'attente en attente d'une connexion réseau. " Cela peut être dû au fait que Firefox a 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 raison possible pour les temps de "blocage" est manquante dans la documentation officielle liée ci-dessus: cela peut arriver lorsque le serveur ne peut pas fournir de connexion à ce moment car il est surchargé. Dans ce cas, la demande de connexion entre dans une file d'attente sur le serveur jusqu'à ce qu'elle puisse être traitée une fois qu'un processus de travail devient libre [ source ].

Sur le plan technique, une telle connexion n'est pas encore établie car la requête attend accept() du serveur [ source ]. Et c'est peut-être la raison pour laquelle il est inclus dans "Blocage" par Firefox, car il pourrait également être considéré comme "Temps passé dans une file d'attente en attente d'une connexion réseau".

(Ce comportement n'est cependant pas totalement cohérent à partir de Firefox 51: pour la première URL appelée dans un nouvel onglet, le temps avant que le serveur accepte la demande de connexion n'est pas du tout compté dans l'onglet "Timings" - uniquement pour les URL suivantes entrées . L'un ou l'autre des deux comportements pourrait être un bug, je ne sais pas lequel.)

1
tanius