Tôi đang sử dụng xương sống trên một dự án của tôi, được tích hợp với giao tiếp với API bên ngoài. Tôi muốn sử dụng cập nhật hồ sơ theo thời gian thực. Vì tôi không có quyền truy cập vào backend chính của ứng dụng bên ngoài này, và chúng không cung cấp máy chủ websocket hay điểm cuối bỏ phiếu dài, về cơ bản tôi còn lại với tùy chọn thực hiện bỏ phiếu thông thường với setInterval và khoảng thời gian 50 giây . Nó đã hoạt động khá tốt. Vấn đề của tôi là trường hợp cạnh. Nếu vì lý do nào đó mà yêu cầu API bị treo, trong hơn 50 giây, giả sử, tôi sẽ kích hoạt yêu cầu mới ngay lập tức. Điều đó có nghĩa là, 2 yêu cầu treo ngay bây giờ, điều này sẽ được thêm vào cuối cùng. Có cách nào để đặt thời gian chờ cho yêu cầu không? Tôi biết tất cả các yêu cầu đều dẫn đến Backbone.sync, nhưng tôi đã kiểm tra mã nguồn và tôi không thấy bất kỳ cách khả thi nào trong việc thiết lập thời gian chờ cho XmlHttpRequest. Có cách nào để làm điều này một cách sạch sẽ và không có hành vi ghi đè? Hoặc có các giải pháp/giải pháp khác không?Backbone.js: xác định thời gian chờ để triển khai Backbone.sync
Trả lời
Chỉ cần chuyển một tùy chọn timeout:milliseconds
trong đối số options
tới fetch
. Các tùy chọn có được thông qua trực tiếp đến jQuery.ajax, mà xử lý cấp thấp gọi XHR:
collection.fetch({timeout:50000});
Hoặc bạn có thể thiết lập một thời gian chờ toàn cầu cho tất cả những yêu cầu của ứng dụng của bạn bằng cách gọi jQuery.ajaxSetup trong khởi động ứng dụng của bạn:
$.ajaxSetup({timeout:50000});
Tôi thấy, do đó, có một số tùy chọn khác có thể được chuyển tới phương thức đồng bộ hóa tne không được ghi lại. btw tôi cũng có thể vượt qua một cái gì đó như {complete: functioname}? Trong trường hợp tôi muốn thực hiện bỏ phiếu dài. – ChuckE
Bạn có thể chuyển bất kỳ tùy chọn nào bạn muốn, không có xác thực. Xương sống sử dụng một số trong số chúng, thêm một số chi tiết cho nó, và sau đó chuyển nó vào jQuery.ajax, cũng được ghi lại. Bạn có thể đặt trình xử lý 'complete' nếu muốn. – jevakallio
- 1. Thời gian chờ jQuery AJAX không được xác định
- 2. Làm cách nào để triển khai thời gian chờ phương thức đồng bộ trong Java?
- 3. Thời gian chờ lỗ UDP
- 4. Thời gian chờ ping mặc định
- 5. cách triển khai tính năng thời gian chờ pubsub của redis?
- 6. Thêm thời gian chờ để DatagramSocket - nhận()
- 7. Đặt thời gian chờ để phẫu thuật
- 8. Đặt thời gian chờ để đọc stdin
- 9. Android - Định kỳ thời gian chờ HttpClient xảy ra
- 10. Gọi EJB với thời gian chờ
- 11. Làm cách nào để đặt IHttpAsyncHandler hết thời gian chờ?
- 12. Làm cách nào để phân biệt thời gian chờ (hết thời gian chờ) để thông báo hoặc hết thời gian chờ?
- 13. ASIHTTPRequest đặt thời gian chờ
- 14. Thời gian chờ cho BackgroundWorker
- 15. Thời gian chờ của Faraday
- 16. feedparser với thời gian chờ
- 17. Cách xác định thời gian chờ khả năng hiển thị trên ios
- 18. Hibernate: đặt thời gian chờ truy vấn mặc định?
- 19. Thời gian chờ mặc định cho HttpComponent Client
- 20. Cách xác định thời gian chờ tích cực hơn cho HttpWebRequest?
- 21. Thời gian chờ của Python so với độ chính xác chờ đợi bận rộn
- 22. Yêu cầu ứng dụng khách HTTP Java với thời gian chờ đã xác định
- 23. Thời gian chờ kết nối và thời gian kết nối
- 24. Thời gian chờ của Silverlight, RIA & ASP.Net
- 25. Mặt đường dẫn gây ra lỗi thời gian triển khai
- 26. Việc triển khai Python của Khoảng thời gian Wilson?
- 27. Thời gian chờ phản hồi Thời gian chờ không dừng trình tự?
- 28. Thời gian chờ yêu cầu web
- 29. Báo cáo dịch vụ báo cáo Thời gian chờ
- 30. Sự khác biệt giữa thời gian chờ và thời gian chờ mở là gì?
"Tôi biết tất cả các yêu cầu đều dẫn đến Backbone.sync" - Tôi nghĩ thực tế quan trọng hơn ở đây là tất cả các sự kiện đều dẫn đến '$ .ajax()'! Giải quyết rất nhiều câu hỏi về các yêu cầu 'fetch()' và 'sync() của xương sống '. –