2010-03-15 12 views
10

मैं इस कोड है जो एकajax आदेश async के साथ चयन के क्रम से मेल नहीं खाता: सच

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

यह ठीक काम करता है की एक onChange घटना में कहा जाता है, लेकिन अगर मैं async सेट: सच कभी कभी परिणाम नहीं करता है से मेल खाते हैं चयन ... मुझे लगता है कि यह हो रहा है क्योंकि कुछ अनुरोध खो गए हैं या प्रतिक्रियाएं क्रम में नहीं आती हैं।

कोई विचार यह अतुल्यकालिक रखने के लिए क्या करना है?

उत्तर

5

jQuery के लिए कुछ प्लगइन्स हैं जो AJAX अनुरोधों को क्यूइंग और ऑर्डर करने का समर्थन करते हैं। जॉन रेसिग ने Ajax Queue लिखा था। प्लगइन विवरण से:

अजाक्स क्यूई एक प्लगइन है जो अजाक्स दौड़ की स्थिति का प्रबंधन करने में मदद करता है। जब एकाधिक अजाक्स अनुरोध तेजी से उत्तराधिकार में किए जाते हैं, तो परिणाम आदेश से बाहर हो सकते हैं। इससे आपके आवेदन में अजीब व्यवहार हो सकता है।

ऐसा लगता है कि आपको जो चाहिए वह हो सकता है, एक ही चीज़ को पूरा करने वाले कुछ अलग-अलग प्लगइन्स भी उपलब्ध होना चाहिए (AJAX अनुरोधों को आदेश देना)। Ajax Manager अधिक अद्यतित होने लगते हैं। कुछ प्लगइन्स के माध्यम से ब्राउज़ करें, आपको ऐसा कुछ मिल सकता है जो आप पूरा कर रहे हैं, जो आप पूरा कर रहे हैं, आपको समय बचा रहा है।

+0

मुझे एक ही समस्या थी। मैं अजाक्स प्रबंधक की सलाह देते हैं। – Jono

1

इसे आजमाएं, यह एक बेहतर समाधान हो सकता है।

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

यह आदेश से बाहर आने वाली प्रतिक्रियाओं की समस्या के साथ कैसे मदद करता है? –

1

प्रबंधक एक समाधान है लेकिन मैंने abort() का उपयोग करके अपनी समस्या तय की है!

संबंधित मुद्दे