2008-12-31 3 views
7

मैं this approach का उपयोग कर एजेपी.NET बैकएंड में अपने AJAX कॉल के लिए jQuery का उपयोग कर रहा हूं। मैं प्रगति संकेतक को दिखाने और छिपाने के लिए .ajaxStart और .ajaxStop का उपयोग कर रहा हूं। जब AJAX अनुरोध बहुत जल्दी समाप्त होता है, तो प्रगति सूचक "ब्लिंक" होता है क्योंकि यह काफी देर तक प्रदर्शित नहीं होता है।मैं jQuery AJAX के साथ एक तेज परिणाम पर "ब्लिंकिंग" प्रगति div से कैसे बच सकता हूं?

एक संभावित समाधान केवल न्यूनतम समय के बाद प्रदर्शित करना होगा (जैसे MSPAX में UpdateProgress.DisplayAfter)। एक और यह सुनिश्चित करना होगा कि सूचक न्यूनतम समय के लिए प्रदर्शित होता है। दुर्भाग्यवश, jQuery Pause plug-in काम नहीं कर रहा प्रतीत होता है, और this जैसे देरी की चाल प्रभाव या तो काम नहीं करते हैं। this SO answer के समान जावास्क्रिप्ट सेटटाइमआउट के आधार पर कुछ प्रकार का समाधान सबसे अधिक संभावना है, लेकिन समस्या यह है कि अजाक्स कॉल प्रसंस्करण जारी रखती है। इस प्रकार परिणाम प्रदर्शित होता है जबकि प्रगति संकेतक अभी भी दिखाई देता है।

तो, क्या यह किया जा सकता है? और यदि हां, तो कैसे?

उत्तर

2

अच्छी तरह से प्रोजेक्ट के शुरुआती चरणों में अजाक्स का उपयोग प्रगति संकेतकों के साथ करता है, निश्चित रूप से आपको एक चमकदार प्रभाव होगा, क्योंकि आप (उम्मीद है) परीक्षण के रूप में बड़ी मात्रा में डेटा के साथ काम नहीं कर रहे हैं। आप पाएंगे क्योंकि आपकी परियोजना अधिक से अधिक डेटा प्राप्त करती है, प्रगति सूचक लंबे और लंबे समय तक रहेगा। मैं प्रगति सूचक को रखने के लिए जानबूझकर देरी बनाने की अनुशंसा नहीं करता क्योंकि यह उपयोगकर्ता अनुभव से अलग हो जाएगा। जावास्क्रिप्ट setTimeout() फ़ंक्शन के साथ खेलने का प्रयास करें।

2

निम्नलिखित का प्रयास करें:

$("#spinner") 
    .bind("ajaxSend", function() { 
      $(this).fadeIn(1000); 
    }) 
    .bind("ajaxComplete", function(){ 
     $(this).stop(); 
     $(this).hide(); 
    }); 

विचार यह है कि आप एक समय में देरी (इस मामले 1000 में) के साथ स्पिनर में फीका और एनीमेशन रद्द करने और ajaxComplete पर छिपाने है।

यदि आप देरी वाले शो करना चाहते हैं तो आप फीड() की बजाय एनिमेट() का उपयोग करके और कॉल को चेन करने के साथ प्रयोग कर सकते हैं (उदाहरण के लिए $ (यह) .animate (/ * कुछ यहाँ * /)। दिखाएं())

आशा है कि इससे मदद मिलती है!

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