Thực ra tôi tin rằng chúng ta có thể đưa ra một kết luận khá mạnh mẽ từ thông số W3C (http://www.w3.org/TR/html5/webappapis.html#timers). Nó không được đảm bảo một cách rõ ràng nhưng chúng tôi có rất nhiều bằng chứng cho thấy hầu như bất kỳ thực hiện hợp lý sẽ có hành vi này:
1) Timeouts và Khoảng thực sự sử dụng cùng một chức năng cơ bản:
() Phương pháp này setTimeout phải trả về giá trị được trả về bởi các bước khởi tạo hẹn giờ, chuyển cho chúng các đối số của phương thức ... và cờ lặp lại được đặt thành false.
Phương thức setInterval() phải trả về giá trị được trả về bởi bộ đếm thời gian bước khởi tạo, chuyển cho chúng đối số của phương thức .... và cờ lặp được đặt thành true.
2) Chức năng này duy nhất - là "bước khởi tạo timer" được đề cập ở trên - sử dụng một danh sách duy nhất của tính giờ:
2, ... hãy xử lý là một số nguyên user-agent xác định rằng lớn hơnsẽ xác định thời gian chờ được đặt bởi cuộc gọi này trong danh sách bộ hẹn giờ hoạt động.
10, Return xử lý ...
3) clearTimeout() và clearInterval() cả hai hoạt động trên danh sách đó (và trên thực tế không được phân biệt bằng spec dưới mọi hình thức)
Các phương thức clearTimeout() và clearInterval() phải xóa mục nhập được xác định là xử lý từ danh sách các bộ đếm thời gian hoạt động của đối tượng Window2 đối tượng mà phương thức được gọi, trong đó xử lý là đối số được truyền cho phương thức, nếu có. (Nếu xử lý không xác định mục nhập trong danh sách các bộ đếm thời gian hoạt động của đối tượng WindowTimers mà phương thức đã được gọi, phương thức sẽ không làm gì.)
Tôi tin rằng điều này thể hiện một trường hợp khá rõ ràng là clearTimeout và clearInterval nên được đồng nghĩa theo thông số. Điều này được sao lưu bởi thực tế là nó hoạt động trong tất cả các trình duyệt mà tôi đã thử nghiệm (Chrome 37, Firefox 33 và Opera 25).
Mặc dù điều này có thể đúng trong hầu hết các triển khai, bạn không nên dựa vào nó vì nó không được xác định theo cách này. –
Nó có thể hoạt động trong một số trình duyệt, nhưng nó có thể không hoạt động giống nhau trong tất cả các trình duyệt, vì vậy tôi sẽ không thực sự làm điều đó. –
Câu hỏi hay (và câu trả lời) cảm ơn vì đã hỏi! – Myster