Tôi hiện đang triển khai một loại HTTP Push bằng cách sử dụng tính năng Bỏ phiếu dài cho các trình duyệt không hỗ trợ phản hồi đa phần ajax.Các trình kích hoạt chuyển sang trạng thái "bận" trên yêu cầu Ajax
Tôi phải thừa nhận rằng trong khi phía máy chủ đang làm việc tốt, tôi relativly mới để kết thúc trước javascript phát triển, và do đó có thể thực hiện một số sai lầm rõ ràng
Vấn đề là như sau LongPolling hoạt động hoàn hảo trên IE 6 , 7,8 và Firefox (mặc dù Firefox sử dụng nhiều phần tôi cũng đã thử nghiệm nó với quá trình bỏ phiếu dài) nhưng Safari và Chrome nhập trạng thái "bận" của trình duyệt trong các yêu cầu ajax. (Họ hiển thị các cửa sổ chờ con trỏ, và Safari cũng cho thấy "Đang tải" của nó chỉ trong thanh tiêu đề)
Đây là khóa học không desireable ..
Đây là mã của tôi để làm cuộc thăm dò dài dựa trên Jquery 1.4.1:
function MepSubscribeToQueueLongPoll(name, callback) {
var queueUrl = MepGetQueueUrl(name, "LongPoll");
MepLongPollStep(queueUrl, callback);
};
function MepLongPollStep(url, callback) {
$.ajax({
url: url,
async: true,
cache: false,
success: function (data,status,request) {
callback(request.responseText);
MepLongPollStep(url, callback);
}
});
};
Lưu ý rằng tôi đang bỏ qua các dữ liệu phân tích chức năng của jquery bằng cách truyền request.responseText trực tiếp đến việc gọi lại vì jquery dường như không hỗ trợ respones ajax nhiều phần dữ liệu và tôi muốn trở thành nhất quán trên các thông tin liên lạc đường dẫn.
Cảm ơn, tôi dường như biết rất ít về hành vi của trình duyệt, nhưng mẹo của bạn đã được sửa vấn đề trên tất cả các trình duyệt – Gluber