Подтвердить что ты не робот

Что означает "Блокировка" в панели Firebug Net?

Я использую Firebug 1.5.2, и при тестировании сайта перед выпуском продукции я вижу огромное количество времени, затрачиваемое на части запросов "Блокировать".

Что означает "блокировка"?

4b9b3361

Ответ 1

"Блокировка" ранее (более ранние версии FireBug) называлась "Queuing". Фактически это означает, что запрос находится в очереди, ожидая доступного соединения. Насколько я знаю, число постоянных подключений по умолчанию ограничено в последних версиях Firefox до 6, IE8 также 6. Раньше это было всего 2. Он может быть изменен пользователем в настройках браузера.
Также, как я знаю, что при загрузке javascript файла все остальные ресурсы (css, images) заблокированы

Ответ 2

Блокировка - это термин, используемый для описания события, которое останавливает другие события или код от обработки (внутри одного потока).

Например, если вы используете "блокирующие" сокеты, тогда код после запроса сокета не будет обрабатываться до тех пор, пока запрос не будет завершен (в пределах одного потока).

Асинхронные действия (без блокировки) просто выполняли бы запрос и позволяли запускать другой код, в то время как запрос выполнялся в фоновом режиме.

В вашей ситуации это в основном означает, что определенные части firebug/браузер не могут активироваться до тех пор, пока другие части не будут завершены. То есть он ждет загрузки изображения перед загрузкой.

Ответ 3

Насколько я знаю, две причины приводят к тому, что компоненты вызывают блокирование других пользователей от загрузки.

  • Браузер принудительно (но обычно настраиваемый) предел того, сколько параллельных ресурсов может быть загружено с определенного хоста за раз.
  • Встроенный javascript, который может заставлять браузер ждать и посмотреть, нужно ли вообще продолжать загрузку остальных компонентов (на всякий случай, если javascript перенаправляет или заменяет содержимое страницы)

Ответ 4

Это означает "ожидание соединения". Как объясняется официальной документацией Mozilla, "Блокировка" "Время, проведенное в очереди, ожидающей подключения к сети". Это может быть связано с тем, что Firefox наносит свой внутренний предел параллельных соединений, как объясняется здесь и в ответах здесь.

Это также может означать "ожидание, потому что сервер занят". Одна из возможных причин "блокировки" времени отсутствует в официальной документации, приведенной выше: это может произойти, когда сервер не может обеспечить соединение по время, потому что оно перегружено. В этом случае запрос на соединение переходит в очередь на сервере, пока он не будет обработан после того, как рабочий процесс станет свободным [source].

В техническом смысле такое соединение еще не установлено, потому что запрос ожидает accept() с сервера [source]. И, возможно, именно поэтому он включен в "Блокирование" Firefox, так как его также можно считать "Время, проведенное в очереди, ожидающей сетевого подключения".

(Это поведение несовместимо с Firefox 51, хотя: для первого URL-адреса, вызываемого на новой вкладке, время до того, как сервер примет запрос на соединение, вообще не засчитывается на вкладке "Сроки" - только для последующие URL-адреса. Любой из обоих вариантов поведения может быть ошибкой, я не знаю, какой из них.)