ref: /superuser/92617/stop-osystem-ending-popup-alerts-in-firefox
Firefox đặc biệt có vấn đề ...
Cảnh báo! Cẩn thận! 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à sẽ KHÔNG làm cạn kiệt thời gian chờ nội bộ vì tập lệnh sẽ không nhai thời gian CPU đủ nhanh. Trong FF 11, điều này đảm bảo sẽ không có cơ hội phá thai theo kiểu "kịch bản không phản hồi".
Việc dừng một cách duyên dáng chỉ tập lệnh vi phạm là có thể xảy ra và không đáng kể trong các phiên bản trình duyệt đầu tiên, bằng cách sử dụng can thiệp thủ công, mà không cần gian lận và hủy bỏ toàn bộ trình duyệt. Không có quyền kiểm soát như vậy là một lỗi thiết kế phần mềm trình duyệt lớn. Cần có sự khéo léo và phản xạ không hợp lý để tác động đến cơ chế vận động 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ể các tập lệnh chạy "vô hạn" với thời gian chờ VÀ không có lời nhắc loại cảnh báo. Chúng đặc biệt nguy hiểm và khó chịu. Về cơ bản, các tập lệnh chạy đủ chậm để phân bổ chu kỳ thời gian CPU là 20 giây. được kéo dài ra 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 dừng thực thi chờ tiếp tục lại trên trình kích hoạt sự kiện. Thay vì định thời gian cho chu kỳ CPU, sẽ tốt hơn rất nhiều cho các tập lệnh để hết thời gian chờ theo thời gian thực. (Bạn có bao giờ nhận thấy cách bạn không thể hủy bỏ một tập lệnh đang cố gắng truy xuất nội dung - nhưng không thành công - để xây dựng một trang không? Trong FF, cả các nút trên thanh địa chỉ reloadvà cancel/stopđều bị vô hiệu hóa mặc dù ít nhất có thể đóng tab.) Javascript bình thường Timeout()vàsetInterval() các cuộc gọi không bị như vậy và được điều chỉnh để trong khi bị tạm dừng, có thể can thiệp thủ công để hủy bỏ chúng một cách "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
Tái bút. kịch bản
for (i=1; i > 0; ++i);
cuối cùng sẽ mắc lỗi tràn khi ivượt quá giá trị tối đa cho phép.