2009-04-27 21 views
5

जब जावास्क्रिप्ट फ़ंक्शन पूरी तरह से लोड होता है तो मैं jQuery परीक्षण में कैसे कर सकता हूं? मैं एक gif का उपयोग करना चाहता हूं, जो लोडिंग प्रदर्शित करता है, जबकि जावास्क्रिप्ट फ़ंक्शन लोड होता है, और फ़ंक्शन पूरी तरह से लोड होने पर इसे छुपाता है?फ़ंक्शन लोड होने तक प्रतीक्षा करें

+1

फ़ंक्शन चलाने के दौरान एक एनिमेटेड gif को दिखाए गए समान प्रश्न देखें: http://stackoverflow.com/questions/210821/how-can-i-give-control-back-briefly-to-the-browser-during-intensive -जवास्क्रिप्ट –

+0

क्या आपका मतलब है कि "लोड किया गया" जैसा कि "जब फ़ंक्शन डाउनलोड किया गया है", या "जैसे फ़ंक्शन निष्पादन पूरा हो गया है"? – nickf

उत्तर

9
$(function(){ 
    $("#loadingGIF").show(); 
    WaitForFunction(); 
}); 

function WaitForFunction() 
{ 
    if (!$.isFunction(FUNCTION_TO_WAIT_ON_HERE)) { 
     setTimeout(WaitForFunction, 100); 
     return; 
    } 
    Function_Loaded(); 
} 

function Function_Loaded(){ 
     $("#loadingGIF").hide(); 
} 
+1

के माध्यम से स्क्रिप्ट लोड नहीं कर रहा है क्या लूप यहां रिकर्सन से बेहतर नहीं होगा? अनुमोदित, इसे स्क्रिप्ट डाउनलोड करने में बहुत लंबा समय नहीं लगना चाहिए, लेकिन अगर नेटवर्क त्रुटि है तो स्टैक ओवर ओवरफ़्लो और प्रदर्शन घट जाएगा या ब्राउज़र क्रैश हो जाएगा। –

+2

मेरे द्वारा पोस्ट किए गए कोड में कोई रिकर्सन नहीं है। –

+2

यह एक लूप और रिकर्सन दोनों है। यह एक सशर्त लूप है (''' 'या' while' 'नहीं), और यह स्वयं को कॉल कर रहा है, इसलिए यह रिकर्सिव है। सिर्फ इसलिए कि देरी हो रही है, इससे कोई भी कम रिकर्सिव नहीं बनता है और सभी रिकर्सन की रोकथाम की स्थिति होती है, अन्यथा एक अनंत लूप होगा। – vol7ron

1

फ़ंक्शन को परिभाषित करने के बाद बस स्वयं को कॉल करें। फ़ंक्शन परिभाषा के बाद बयान केवल पिछले स्रोत टेक्स्ट को पढ़ने के बाद निष्पादित किया जाएगा (और इस प्रकार निष्पादित)।

+0

जो कि नहीं पूछा गया था, आप मानते हैं कि वह गतिशील रूप से $ .getScript –

1

मुझे यकीन है कि आप लोड हो रहा है से क्या मतलब है नहीं कर रहा हूँ, लेकिन निम्नलिखित वैसे भी लागू करना चाहिए:

  1. जब आप जावा स्क्रिप्ट कोड लोड हो रहा है शुरू, GIF
  2. कोड आप लोड में प्रदर्शित करते हैं, टाइमर का उपयोग किए बिना अंत

पर GIF को छिपाने के लिए यह एक "सरल" रास्ते में आपकी समस्या का समाधान करना चाहिए एक बयान, आदि जोड़ने के

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