ref: https://superuser.com/questions/92617/stop-never-ending-popup-alerts-in-firefox
Firefox là đặc biệt có vấn đề ...
Cảnh báo! Caveat! KHÔNG chạy cái này!
javascript:
while (true) alert("irritated and exhausted - yet?");
Điều này sẽ "vô hạn" và KHÔNG xả hết thời gian chờ vì tập lệnh sẽ không nhai hết thời gian CPU. Trong FF 11, điều này đảm bảo sẽ không có cơ hội phá thai "kịch bản không phản hồi".
Chỉ dừng lại một cách khéo léo kịch bản vi phạm là có thể và tầm thường trong các phiên bản trình duyệt sớm, sử dụng can thiệp thủ công mà không bị xáo trộn và hủy bỏ toàn bộ trình duyệt. Để không có kiểm soát như vậy là một lỗ hổng thiết kế phần mềm trình duyệt lớn. Sự khéo léo và phản xạ không hợp lý được yêu cầu để thực hiện các cơ chế động cơ bằng tay của "các giải pháp" được mô tả trong tài liệu tham khảo.
Lưu ý: Có thể cho các tập lệnh chạy "không giới hạn" thời gian chờ ra và w/o lời nhắc loại cảnh báo. Đây là những đặc biệt nguy hiểm và gây phiền nhiễu. Về cơ bản, các kịch bản chạy chậm đủ để thời gian CPU phân bổ chu kỳ nói 20 giây. được kéo dài trong vài phút hoặc vài giờ hoặc ..., trước khi hết thời gian, bằng cách tạm ngưng thực thi đang chờ được tiếp tục trên trình kích hoạt sự kiện. Thay vì thời gian chu kỳ CPU nó sẽ là tốt hơn cho các kịch bản để thời gian chờ trên đồng hồ thế giới thực. (Bao giờ bạn chú ý rằng bạn không thể hủy bỏ một tập lệnh đang cố truy xuất nội dung - nhưng không thành công - để xây dựng một trang? Trong FF, cả hai nút thanh địa chỉ reload
và cancel/stop
đều bị vô hiệu hóa dù tab ít nhất có thể được đóng lại.) Javascript bình thường Timeout()
và setInterval()
cuộc gọi không bị này và được điều kiện để trong khi bị đình chỉ, thủ công can thiệp có thể hủy bỏ chúng "duyên dáng".
môi trường thử nghiệm cho các quan sát thực nghiệm:
window.navigator.userAgent=
Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:11.0) Gecko/20100101 Firefox/11.0
PS. tập lệnh
for (i=1; i > 0; ++i);
cuối cùng sẽ bẫy lỗi tràn khi i
vượt quá giá trị tối đa cho phép.
Ngoài sự tò mò, bạn có thể xác định nguyên nhân khiến trình duyệt của bạn không ném cảnh báo 'tập lệnh chậm' không? – alex
không có đầu mối! (giới hạn 15 ký tự này gây phiền nhiễu) – nickf
Điều này có thuộc về SuperUser không? – Chetan