Tôi biết đây là một câu hỏi cũ nhưng tôi vấp trên nó, và theo cách StackOverflow làm việc tôi nghĩ rằng tôi có thể cải thiện nó. Bạn có thể muốn xem xét một giải pháp tương tự như what's described here được gọi là bỏ phiếu dài. HOẶC một giải pháp khác là WebSockets (một trong những triển khai tốt nhất của websockets với mục tiêu chính là làm việc trên tất cả các trình duyệt) socket.io.
Giải pháp đầu tiên về cơ bản được tóm tắt khi bạn gửi một yêu cầu AJAX và chờ phản hồi trước khi gửi một yêu cầu bổ sung, sau đó một khi phản hồi đã được gửi, hãy xếp hàng truy vấn tiếp theo.
Trong khi đó, trên chương trình phụ trợ, bạn không trả lại phản hồi cho đến khi trạng thái thay đổi. Vì vậy, trong kịch bản của bạn, bạn sẽ sử dụng một vòng lặp while sẽ tiếp tục cho đến khi trạng thái thay đổi, sau đó trả lại trạng thái đã thay đổi cho trang. Tôi thực sự thích giải pháp này. Như câu trả lời được liên kết ở trên cho thấy, đây là những gì facebook hiện (hoặc ít nhất đã làm trong quá khứ).
socket.io về cơ bản là jQuery của Websockets, do đó bất kỳ trình duyệt nào mà người dùng của bạn ở trong đó đều có thể thiết lập kết nối ổ cắm có thể đẩy dữ liệu đến trang (mà không cần bỏ phiếu). Điều này là gần gũi hơn với một thông báo tức thì của Blackberry, mà - nếu bạn đang đi cho ngay lập tức, đó là giải pháp tốt nhất.
tôi sẽ sử dụng 'setTimeout' và luôn gọi nó là khi nhận được phản hồi trước đó. Bằng cách này bạn tránh tắc nghẽn hoặc xếp chồng chức năng hoặc bất cứ điều gì bạn muốn gọi nó. –
Tôi đã thực hiện nó giống như @ FelixKling nói và hoạt động như một sự quyến rũ. Thử nó! – Alfabravo
Tuyệt vời! Có thể @FelixKling, bạn có thể vui lòng đăng bài đó làm câu trả lời và tôi sẽ chấp nhận không? – Sologoub