2015-08-13 4 views
6

मैं सिर्फ यह जानना चाहता हूं कि एकाधिक pjax को फिर से लोड कैसे करें? यह मेरा कोडएकाधिक pjax को फिर से लोड करने के लिए कैसे करें

 $.pjax.reload({container:"#con_camp"}); 
     $.pjax.reload({container:"#con_camp1"}); 

लेकिन केवल # con_camp1 वह है जो पुनः लोड होगा।

उत्तर

13

इसे आजमाएं।

$.pjax.reload({container: "#1-pjax", async:false}); 
    $.pjax.reload({container: "#2-pjax", async:false}); 
+0

मैं पहले से ही है कि कोशिश लेकिन मेरे लिए इसकी कोई भाग्य कर सकता है। :( –

+0

मैं इसके लिए वोट देता हूं। मैं yii ढांचे का उपयोग करता हूं और समस्या यह है कि मैं उपयोग करता हूं। लेकिन जब मैं अन्य विजेट का उपयोग करता हूं, तो यह कोड काम करता है। –

+0

हाँ यह @GAMITG काम करता है लेकिन यदि सर्वर में से किसी भी AJAX अनुरोधों को संसाधित करने में समय लगता है तो आपका ब्राउज़र सचमुच लटका देता है जब तक कि यह सर्वर से प्रतिक्रिया प्राप्त नहीं करता है। इसके लिए कोई कामकाज? – shivgre

0

जब async:false का उपयोग कर Chrome और Firefox दोनों इस फेंक रहे हैं:

मुख्य थ्रेड पर तुल्यकालिक XMLHttpRequest अंतिम उपयोगकर्ता का अनुभव करने के लिए की वजह से इसके हानिकारक प्रभाव मान्य नहीं है। अधिक सहायता के लिए, https://xhr.spec.whatwg.org/ देखें।

यह करने के लिए एक अलग तरह pjax:end घटना है कि जब एक कंटेनर पूरी तरह से कोड है कि अगले एक पुनः लोड होगा रजिस्टर करने के लिए पुनः लोड है ट्रिगर किया जाएगा उपयोग करने के लिए है। इस तरह वे एक के बाद एक पुनः लोड कर देंगे:

var pjaxContainers = ['#pjax-block-1', '#pjax-block-2', '#pjax-block-3']; 

$.each(pjaxContainers , function(index, container) { 
    if (index+1 < pjaxContainers.length) { 
      $(container).one('pjax:end', function (xhr, options) { 
       $.pjax.reload({container: pjaxContainers[index+1]}) ; 
      }); 
    } 
}); 

$.pjax.reload({container: pjaxContainers[0]}) ; 
4

तुम बस

$.pjax.reload({container: '#container_1'}).done(function() { 
    $.pjax.reload({container: '#container_2'}); 
}); 
संबंधित मुद्दे