2012-01-19 12 views
6

मैं एक जेएस फ़ंक्शन चलाना चाहता हूं, लेकिन प्रतिक्रिया की प्रतीक्षा नहीं करता हूं। ऐसा करने का एकमात्र तरीका यह है कि मैं ऐसा कर सकता हूं:मैं जेएस फ़ंक्शन को कैसे 'आग और भूल सकता हूं'? (वापसी के लिए प्रतीक्षा न करें)

setTimeout(function() { 
    myFunc(); 
},0); 

लेकिन ऐसा लगता है ... सबसे अच्छा अक्षम है। कोई विचार?

+3

बेहतर को देखने के लिए चाहते हो सकता है (async ajax कॉल यहाँ एक अपवाद हो सकते हैं): 'setTimeout (myFunc, 0)' – Phrogz

+0

मैं एक स्थिति के बारे में सोच जहां के लिए संघर्ष कर रहा हूँ इससे कोई लाभ नहीं मिलता है कि आप अपने मौजूदा कोड को फिर से व्यवस्थित करने से नहीं प्राप्त कर सकते हैं। क्या आप उस वास्तविक समस्या के बारे में अधिक जानकारी प्रदान कर सकते हैं जिसे आप हल करने का प्रयास कर रहे हैं? –

उत्तर

3

वह अक्षम क्यों है?

इसके अलावा, यह भी न भूलें कि ब्राउज़र जावास्क्रिप्ट एकल-थ्रेडेड है। इसलिए, जब आपका फ़ंक्शन चलता है, तो आप इसके लिए वापस आने की प्रतीक्षा करेंगे।

+0

क्या होता है जहां आप एसिंक्रोनस अनुरोध कर रहे हैं? क्या यह धागा नहीं है? –

+0

@ldiqual: यह एक अपवाद होगा। इस अनुरोध के लिए कॉलबैक अभी भी मुख्य धागे पर चलाएगा। –

+0

धन्यवाद- मुझे लगता है कि setTimeout विधि का उपयोग जारी रखने के लिए यह समझ में आता है। – Alastair

12

आप webworkers

+2

हाँ afaik यह एकमात्र ** सच ** समाधान – JamesHalsall

+0

jquery की getScript नहीं है http://api.jquery.com/jQuery.getScript/ बहुत कुछ वही कर रहा है? – ScottE

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

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