Trong trường hợp bạn không biết những gì tôi đang nói về, vui lòng đọc John Resig - How JavaScript Timers Work và Is JavaScript guaranteed to be single-threaded?Điều gì kích hoạt việc thực thi mã JavaScript?
Có một số kích tố enqueue nhiệm vụ trong thực hiện các công cụ JS FIFO. Đây không phải là một phần của bất kỳ tiêu chuẩn nào, vì vậy tôi đang cố gắng tìm một danh sách exhausive của những người kích hoạt. (Tôi đoán tất cả nắm để xử lý sự kiện nội bộ, như sự kiện kịch bản tải hoặc sự kiện timer, nhưng tôi thà bỏ qua internals của động cơ và nhìn mọi thứ từ quan điểm của người sử dụng xem.)
Vì vậy, đến nay tôi đã xác định được
<script>
yếu tố trong văn bản ban đầu (bao gồm cả những người bổ sung bởidocument.write
) *<script>
yếu tố chèn vào bởi JS khi chạy *- Event handl ERS
- đây bao gồm một loạt các trường hợp, chẳng hạn như tương tác người dùng, các sự kiện Lỗi, các thông điệp Worker Web hoặc callbacks Ajax ... window.setTimeout
window.setInterval
*) chỉ trong trình duyệt/Môi trường DOM
Còn nữa? Bất kỳ sự khác biệt nào giữa các công cụ JS?
Tương tự như window.setTimeout và window.setInterval, hiện giờ có window.requestAnimationFrame sẽ cố gắng kích hoạt hàm vào lần làm mới màn hình tiếp theo (thường là 1/60 giây) – jcmiller11
Bạn có thể nhóm 'setTimeout() 'và' setInterval() 'cùng với các trình xử lý sự kiện vì đó là những gì chúng là: các sự kiện theo thời gian. Về cơ bản, chỉ có hai điều: trình xử lý sự kiện và tải tập lệnh. – slebetman