2010-03-23 5 views

Respuesta

5

Bloquear es un término usado para describir un evento que detiene el procesamiento de otros eventos o códigos (dentro del mismo hilo).

Por ejemplo, si utiliza los sockets "de bloqueo", el código después de que se haya realizado la solicitud de socket no se procesará hasta que se complete la solicitud (dentro del mismo hilo).

Las actividades asincrónicas (sin bloqueo) simplemente realizarían la solicitud y dejarían que se ejecutara otro código mientras la solicitud se realizaba en segundo plano.

En su situación, básicamente significa que ciertas partes de firebug/el navegador no pueden activarse hasta que se completen otras partes. Es decir. está esperando que se descargue una imagen antes de descargar más.

+3

¿Es posible configurar el servidor Apache para eliminar dichos problemas de bloqueo? Estoy seguro de que el servidor puede hacerlo porque casi todos los sitios IIS no tienen retrasos en el bloqueo, pero la instalación "limpia" de Apache lo hace ... – Laserson

27

"Bloqueo" anteriormente (versiones anteriores de FireBug) se llamaba "Cola". En realidad, significa que la solicitud está esperando cola para la conexión disponible. Por lo que sé, la cantidad de conexiones persistentes por defecto está limitada en las últimas versiones de Firefox a 6, IE8 también 6. Anteriormente solo tenía 2. El usuario puede cambiarlo en la configuración del navegador.
También como sé que mientras se carga el archivo javascript, todos los demás recursos (css, imágenes) están bloqueados

+0

Me gustaría agregar que es por eso que debe cargar los archivos javaScript al último (si es posible). La página parecerá cargar mucho más rápido para el usuario si no tiene que esperar a que se carguen CSS o imágenes. – dspacejs

+0

Consulte también la documentación oficial [correspondiente de Mozilla] (https://developer.mozilla.org/en-US/docs/Tools/Network_Monitor#Timings). – tanius

4

Por lo que sé, dos razones hacen que los componentes bloqueen la carga de otros.

  1. límite impuesto por el navegador (pero habitualmente configurable) de cuántos recursos paralelos se pueden cargar desde un host en particular a la vez.
  2. Javascript en línea, lo que puede provocar que el navegador para esperar y ver si en absoluto tiene que seguir adelante con la descarga del resto de los componentes (por si acaso las redirecciones JavaScript o reemplaza el contenido de la página)
1

Significa "esperando conexión". Como se explica en el documento oficial documentation by Mozilla, "Bloquear" es "Tiempo pasado en una cola esperando una conexión de red". Eso puede deberse a que Firefox tocó su límite de conexiones paralelas internas, como se explica allí y en las respuestas aquí.

También puede significar "esperar porque el servidor está ocupado". Una posible razón para "Bloquear" veces falta en la documentación oficial vinculada anteriormente: puede ocurrir cuando el servidor no puede proporcionar una conexión en el momento porque está sobrecargado. En ese caso, la solicitud de conexión entra en una cola en el servidor hasta que se pueda procesar una vez que un proceso de trabajo se libere [source].

En un sentido técnico, dicha conexión aún no está establecida porque la solicitud está esperando accept() del servidor [source]. Y tal vez es por eso que está incluido en "Bloqueo" por Firefox, ya que también podría considerarse "Tiempo pasado en una cola esperando una conexión de red". (Este comportamiento no es del todo coherente con Firefox 51: para la primera URL invocada en una pestaña nueva, el tiempo antes de que el servidor acepte la solicitud de conexión no se cuenta en la pestaña "Tiempos" para URL subsiguientes ingresadas. Cualquiera de los dos comportamientos podría ser un error, no sé cuál.)

Cuestiones relacionadas