2010-03-15 18 views
10

Birajax sırası: true

function group_changed(obj) 
{ 
    $.ajaxSetup({async:false}); 
    $.post("/medilab/personnel/groups/getGroupRightsAjax", 
    { 'group.id': obj.options[obj.selectedIndex].value }, 
    function(data){ 
     $("#div_rights").html(data); 
    } 
); 
} 

Bu iyi çalışır bir onChange etkinlikte adlandırılan bu kod var ama uyumsuz ayarlarsanız: true bazen sonuç eşleşecek doesnt seçim ... Bunun olduğunu düşünüyorum, çünkü bazı istekler kayboldu veya yanıtlar sıraya girmedi.

Eşzamansız tutmak için ne yapılacağı hakkında bir fikriniz var mı?

cevap

5

kuyruk ve ajax istekleri sipariş destekleyen jQuery için birkaç eklentileri vardır. John Resig, Ajax Queue yazdı. Eklenti açıklaması:

Ajax Kuyruğu, Ajax yarış koşullarını yönetmek için 'a yardımcı olan bir eklentidir. çoklu Ajax istekleri hızlı ardışık olarak yapıldığında, sonuçlar siparişten iade edilebilir. Bu, uygulamanızda garip davranışa neden olabilir.

Bu neye ihtiyacınız olabilir gibi de (ajax istekleri tutarak sıralı) aynı şeyi başarmak mevcut birkaç farklı eklentileri olmalıdır geliyor. Ajax Manager, daha güncel görünüyor. Bazı eklentilere göz atın, başarmak istediğiniz şeyi zaten yapan bir şey bulabilir, size zaman kazandırır.

+0

Aynı problem vardı. Ajax Yöneticisini tavsiye ederim. – Jono

1

bunu deneyin, daha iyi bir çözüm olabilir.

$.ajax 
({ 
    type:'post', 
    data:'', 
    dataType: 'html', 
    url: '', 
    success: function(data) { 
     alert('data'); 
    }, 
    error: function() { 
     alert("Error"); 
    } 
}); 
+0

Bu, siparişten kaynaklanan yanıt sorununda nasıl yardımcı olur? –

1

Yöneticiler bir çözümdür, ancak sorunumu abort() kullanarak düzelttim.