Tôi đã tìm kiếm trên web để tìm câu trả lời thẳng cho điều này. Có ai biết độ dài thời gian chờ mặc định cho yêu cầu ajax của trình duyệt không? Cũng theo phiên bản nếu nó thay đổi?Độ dài thời gian chờ AJAX (XmlHttpRequest) theo trình duyệt
Trả lời
Tôi không nghĩ rằng trình duyệt có thời gian chờ cho AJAX, chỉ có các yêu cầu đồng bộ hoặc không đồng bộ; đồng bộ - đầu tiên đóng băng thực thi JavaScript cho đến khi yêu cầu trả về, không đồng bộ - không đóng băng thực thi JavaScript, nó chỉ yêu cầu ra khỏi luồng thực thi và nếu bạn có hàm gọi lại, hàm sẽ thực thi hàm song song với hoạt động tập lệnh (tương tự như một chuỗi)
**sync flow:**
running JS script
|
ajax
(wait for response)
|
execute callback
|
running JS script
**async flow:**
running JS script
|
ajax --------------------
| |
running JS script execute callback
Theo thông số kỹ thuật, giá trị thời gian chờ mặc định bằng 0, có nghĩa là không có thời gian chờ. Tuy nhiên, bạn có thể đặt giá trị thời gian chờ trên thuộc tính XHR.timeout; giá trị bằng mili giây.
Nguồn:
http://www.w3.org/TR/2011/WD-XMLHttpRequest2-20110816/#the-timeout-attribute http://msdn.microsoft.com/en-us/library/cc304105(v=vs.85).aspx
trình duyệt không có một giá trị thời gian chờ, hành vi phụ thuộc vào chrome trình duyệt có giá trị thời gian chờ 5 phút và sau 5 phút nó gửi lại gọi ajax
Hết thời gian chờ sau 10 giây ..? – ppumkin
tôi đã làm một lượng thử nghiệm khiêm tốn. Để kiểm tra tôi đã tải trang web của mình, hãy dừng máy chủ cục bộ và sau đó thử yêu cầu AJAX. Tôi đặt timeout
thành thứ gì đó thấp như 1000ms cho đến khi tôi có thể đảm bảo rằng tôi có mã tối thiểu (bạn phải đặt xhr.timeout
sau open
và trướcsend
).
Khi tôi đã đạt được mục tiêu ban đầu của mình là xác định khoảng thời gian thích hợp để cho phép tuy nhiên tôi đã rất ngạc nhiên khi các trình duyệt timeout
hoàn toàn bị bỏ qua. Mục tiêu của tôi được cải cách để cố gắng xác định thời gian chờ tối đa có thể trước khi xử lý lỗi không còn khả thi.Điều đó có nghĩa là đã qua các khoảng thời gian khá ngắn của tập lệnh xử lý thời gian chờ sẽ không hoạt động ở tất cả. Những gì tôi thấy là khá thảm hại.
- Chrome 60: 995ms, 996ms sẽ phát hiện lỗi ác trong bảng điều khiển.
- Firefox 52 ESR: ~ 3000ms, vị trí của chuột hoặc sự cố khác có thể không gây ra phản hồi xung quanh hoặc chỉ dưới ba giây.
Vậy ...
xhr.open(method,url,true);
xhr.timeout = 995;//REALLY short
xhr.send(null);
xhr.ontimeout = function()
{
//Code will only execute if at or below *effective* timeouts list above.
//Good spot to make a second attempt.
}
Vì vậy, nếu timeout
của bạn được đặt cao hơn 995ms Chrome sẽ bỏ qua mã của bạn và nôn trên console trống sạch đẹp của bạn mà bạn làm việc chăm chỉ để giữ sạch. Firefox không tốt hơn nhiều và có những yêu cầu không đáng tin cậy mà chỉ hết thời gian chờ vượt quá bất kỳ sự kiên nhẫn nào tôi có và khi làm như vậy hãy bỏ qua trình xử lý ontimeout
.
- 1. Làm thế nào để phát hiện thời gian chờ trên một cuộc gọi AJAX (XmlHttpRequest) trong trình duyệt?
- 2. Vấn đề thời gian chờ bỏ phiếu dài
- 3. Thời gian chờ jQuery AJAX không được xác định
- 4. Làm cách nào để ngăn thời gian chờ của trình duyệt trong các quy trình chạy dài?
- 5. Cách kéo dài thời gian chờ của truy vấn SQL
- 6. Phản hồi thời gian chờ của phiên trong AJAX
- 7. Thời gian chờ phản hồi Thời gian chờ không dừng trình tự?
- 8. Khoảng thời gian an toàn mà tôi có thể chờ đợi trước khi trả lời một trình duyệt mà không bị hết thời gian chờ là gì?
- 9. feedparser với thời gian chờ
- 10. Cài đặt thời gian chờ trên jQuery được viết tắt
- 11. Lỗi XMLHttpRequest (Ajax)
- 12. Trình duyệt sẽ chờ bao lâu sau khi có yêu cầu ajax?
- 13. Lập trình thiết lập thời gian chờ WCF ở chế độ gỡ lỗi
- 14. Hết thời gian chờ bên ngoài
- 15. Dài, hoạt động chậm trong chế độ xem Django gây ra thời gian chờ. Bất kỳ cách nào để Python nói AJAX thay thế?
- 16. Thời gian chờ của Python so với độ chính xác chờ đợi bận rộn
- 17. HttpClient quầy hàng trong thời gian dài, ngay cả với các thông số thời gian chờ thiết lập
- 18. Thời gian chờ .NET và IIS cho yêu cầu AJAX riêng lẻ
- 19. Thời gian chờ của Linux CFS (Hoàn toàn hợp lý theo lịch trình)
- 20. Độ dài thời gian của một tệp mp3
- 21. Thời gian chờ của Faraday
- 22. ASIHTTPRequest đặt thời gian chờ
- 23. Thời gian chờ cho BackgroundWorker
- 24. Thời gian chờ lỗ UDP
- 25. Selenium Firefox Mở thời gian chờ
- 26. Thời gian chờ IMAP nhàn rỗi
- 27. Thời gian chờ yêu cầu Tomcat
- 28. Vim Dòng lệnh Thoát Thời gian chờ
- 29. Chạy chương trình từ PowerShell với thời gian chờ
- 30. Android - Cách đếm thời gian trong một thời gian dài
Nhưng có thời gian chờ cơ bản không được bao gồm trong thông số kỹ thuật. Từ liên kết thứ hai: 'Nếu bạn đặt giá trị time-out XMLHttpRequest lớn hơn giá trị hết thời gian của ngăn xếp mạng, ngăn xếp mạng sẽ hết thời gian đầu tiên và sự kiện ontimeout sẽ không được nâng lên.' – djjeck