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