2010-02-14 20 views
6

Şu anda, birden fazla ajax yanıtını desteklemeyen tarayıcılar için Uzun Çağırma'yı kullanarak bir tür HTTP Push uygulaıyorum. LongPolling IE 6 mükemmel çalışıyor şöyleAjax isteğinde "meşgul" durumu girilen tarayıcılar

ben sunucu tarafı iyi çalışıyor iken, i ve böylece sorunun bazı bariz hatalar

yapmış olabilir javascript gelişme ön ucuna nispeten yeni bir olduğumu itiraf etmeliyim , 7,8 ve Firefox (Firefox çok parçalı bir yazılım kullanıyor olsa da uzun bir sorgulamayla test ettim) ancak Safari ve Chrome, ajax istekleri sırasında tarayıcıları "meşgul" durumuna giriyor. İşte

jQuery dayalı uzun anket yapmak benim kodudur .. (onlar pencereleri imleç beklemek göstermek ve Safari de başlık çubuğunda onun "Yükleme" göstergesini gösterir)

Bu katlanmak elbette 1.4.1: jQuery çok parçalı ajax respones desteklemek için görünmüyor ve ben iletişimin tutarlı olmak istedim çünkü ben callback'inde doğrudan request.responseText geçerek jQuery işlevselliğini ayrıştırma verileri atlayarak am


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); 
     } 
    }); 
}; 

Not yolları.

cevap

3

Daha iyi bir yanıt öne çıkmadığından, basit bir zaman aşımının sorunu çözüp çözmeyeceğini merak ediyorum. Bir yerine "tahmin" vermek için üzgünüm bir "Bunun gerçek cevabı bilmek", ama bu gerçekten

function MepLongPollStep(url, callback) { 
    $.ajax({ 
     url: url, 
     async: true, 
     cache: false, 
     success: function (data,status,request) { 
      callback(request.responseText); 
      window.setTimeout(function(){ 
       MepLongPollStep(url, callback); 
      },10); 
     } 
    }); 
}; 
+0

sayesinde ben tarayıcı davranışı hakkında çok az bilmek gibi görünüyor bunu .: giderebilir, ancak ucu sabit tüm tarayıcılarda sorun – Gluber

İlgili konular