6
我目前正在对不支持多部分ajax响应的浏览器实施一种使用长轮询的HTTP推送。在Ajax请求中进入“繁忙”状态的浏览器
我不得不承认,在服务器端工作正常,我是relativly新的前端JavaScript开发,因此可能已经取得了一些明显的错误
的问题如下LongPolling完美的作品在IE 6 ,7,8和Firefox(尽管Firefox使用多部分,我也用长轮询进行了测试),但Safari和Chrome在ajax请求期间输入 浏览器处于“繁忙”状态。 (他们表现出窗口等待光标,和Safari也显示在标题栏中的“装入”指示符)
这当然不是desireable的..
这里是我的代码做基于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);
}
});
};
注意,我绕过数据直接传递request.responseText回调解析的jQuery功能因为jQuery似乎并不支持多AJAX的阶跃响应,我想成为横跨通信一致路径。
谢谢,我似乎知道一点关于浏览器的行为,但你的小费固定所有浏览器都存在这个问题 – Gluber 2010-02-14 05:15:35