2010-03-23 28 views

Trả lời

5

Chặn là thuật ngữ được sử dụng để mô tả sự kiện ngăn các sự kiện hoặc mã khác xử lý (trong cùng một chuỗi).

Ví dụ: nếu bạn sử dụng "chặn" ổ cắm thì mã sau khi yêu cầu socket đã được thực hiện sẽ không được xử lý cho đến khi yêu cầu hoàn tất (trong cùng một chuỗi).

Các hoạt động không đồng bộ (không chặn) sẽ đơn giản thực hiện yêu cầu và cho phép mã khác chạy trong khi yêu cầu xảy ra ở chế độ nền.

Trong trường hợp của bạn về cơ bản nó có nghĩa là một số phần của firebug/trình duyệt không thể kích hoạt cho đến khi các bộ phận khác hoàn tất. I E. nó đang chờ một hình ảnh để tải xuống trước khi tải xuống thêm.

+3

Có thể thiết lập máy chủ Apache để xóa các vấn đề chặn đó không? Tôi chắc chắn rằng máy chủ có thể làm điều đó bởi vì hầu như tất cả các trang IIS không có sự chậm trễ chặn như vậy, nhưng cài đặt apache "sạch" ... – Laserson

27

"Chặn" trước đó (phiên bản trước của FireBug) được gọi là "Xếp hàng". Nó thực sự có nghĩa là yêu cầu đang nằm trong hàng chờ đợi kết nối có sẵn. Theo như tôi biết số lượng các kết nối liên tục theo mặc định được giới hạn trong phiên bản cuối cùng của Firefox đến 6, IE8 cũng 6. Trước đó nó chỉ có 2. Nó có thể được thay đổi bởi người dùng trong cài đặt trình duyệt.
Cũng giống như tôi biết rằng trong khi tệp javascript đang tải, tất cả các tài nguyên khác (css, hình ảnh) bị chặn

+0

Tôi chỉ muốn thêm rằng đây là lý do tại sao bạn nên tải tệp javaScript cuối cùng (nếu có thể). Trang dường như sẽ tải nhanh hơn nhiều cho người dùng nếu trang đó không phải chờ CSS hoặc hình ảnh tải. – dspacejs

+0

Cũng xem [tài liệu chính thức của Mozilla] tương ứng (https://developer.mozilla.org/en-US/docs/Tools/Network_Monitor#Timings). – tanius

4

Theo như tôi biết, hai nguyên nhân khiến cho người khác tải.

  1. Giới hạn thực thi (nhưng thường cấu hình) của trình duyệt có thể tải bao nhiêu tài nguyên song song từ một máy chủ cụ thể tại một thời điểm.
  2. Inline javascript, có thể làm cho trình duyệt phải đợi và xem nếu nó ở tất cả cần phải đi trước với tải phần còn lại của các thành phần (chỉ trong trường hợp chuyển hướng javascript hoặc thay thế các nội dung của trang)
1

Có nghĩa là "đang chờ kết nối". Như được giải thích trong chính thức documentation by Mozilla, "Chặn" là "Thời gian được sử dụng trong hàng chờ kết nối mạng". Đó có thể là do Firefox đã đạt đến giới hạn kết nối song song bên trong của nó, như đã giải thích ở đây và trong các câu trả lời ở đây.

Nó cũng có thể có nghĩa là "đang chờ vì máy chủ bận". Một lý do có thể cho thời gian "Chặn" bị thiếu trong tài liệu chính thức được liên kết ở trên: nó có thể xảy ra khi máy chủ không thể cung cấp kết nối vào lúc đó vì nó bị quá tải. Trong trường hợp đó, yêu cầu kết nối đi vào hàng đợi trên máy chủ cho đến khi nó có thể được xử lý khi quy trình công nhân trở thành miễn phí [source].

Theo nghĩa kỹ thuật, kết nối đó chưa được thiết lập vì yêu cầu đang chờ accept() từ máy chủ [source]. Và có lẽ đó là lý do tại sao nó được subumed dưới "Blocking" bởi Firefox, vì nó cũng có thể được coi là "Thời gian dành cho hàng chờ đợi kết nối mạng".

(Hành vi này không hoàn toàn nhất quán như Firefox 51: đối với URL đầu tiên được gọi trong tab mới, thời gian trước khi máy chủ chấp nhận yêu cầu kết nối không được tính trong tab "Thời gian" - chỉ cho các URL tiếp theo được nhập. Cả hai hành vi đều có thể là lỗi, tôi không biết cái nào.)

Các vấn đề liên quan