2010-04-27 13 views
5

HTML5specifications बताता है कि setTimeout अतिरिक्त "टाइमआउट" तर्क के बिना चलाया जा सकता है जो कि "हैंडलर" फ़ंक्शन निर्धारित करने के बाद कितने मिलीसेकंड होगा।सेटटाइमआउट (मजेदार) एक तर्क के साथ? (टाइमआउट निर्दिष्ट नहीं है)

handle = window . setTimeout(handler [, timeout [, arguments ] ]) 
    Schedules a timeout to run handler after timeout milliseconds. Any arguments are passed straight through to the handler. 

हालांकि, मैं कहीं भी नहीं ढूंढ पाया जो बताता है कि क्या होता है जब कोई "टाइमआउट" समय अवधि निर्धारित नहीं होती है।

एक उदाहरण उपयोग है, animation implementation int राफेल लाइब्रेरी।

animationElements[length] && win.setTimeout(animation); 
+0

सभी मौजूदा प्रमुख ब्राउज़र एक भी तर्क स्वीकार करने में सक्षम हैं, इसलिए किसी भी भ्रम से बचने के लिए यह इंगित करने योग्य है कि ब्राउज़र को इसका समर्थन करने के लिए HTML5 अनुपालन नहीं होना चाहिए। –

+2

यह जेएस में स्थगित प्रक्रिया कॉल करने का एक शानदार तरीका है - "बाद में एक्स/सही-अभी-अभी करें"। यदि आप किसी ईवेंट हैंडलर के अंदर हैं, तो राज्य/पुन: प्रवेश के मुद्दों के कारण कुछ फ़ंक्शन कॉल करने में बुरा समय हो सकता है। ध्यान दें कि आप वास्तविक निष्पादन समय की गारंटी नहीं दे सकते हैं, लेकिन यह "जल्द" है। – JBRWilkinson

+0

@ एंडी मोज़िला एमडीसी मिलीसेकंड को एक अनिवार्य पैरामीटर के रूप में बताता है। –

उत्तर

13

http://www.whatwg.org/specs/web-apps/current-work/multipage/timers.html#get-the-timeout

  1. Let टाइमआउट विधि को दूसरा तर्क, या शून्य हो अगर तर्क निकाल दिया गया देखें।
+5

मुझे इसे मारो :-) +1। मैं अपने स्वयं के उत्तर में जोड़ने जा रहा था (लेकिन इसे यहां भी जोड़ सकता हूं) कि सिर्फ इसलिए कि टाइमआउट तर्क 0 है, इसका मतलब यह नहीं है कि यह तुरंत चल जाएगा, यह तब भी चलने के लिए कतारबद्ध होगा जब धागा निष्क्रिय हो जाए, उदाहरण के लिए सभी मौजूदा कोड निष्पादन समाप्त होने के बाद। –

+0

Grr ... मुझे नहीं पता कि मैं इसे कैसे चूक गया। क्षमा करें और धन्यवाद। –

+1

एफवाईआई, उपर्युक्त संदर्भित दस्तावेज़ बदल दिया गया है ताकि अब यह पढ़ सके: "टाइमआउट को विधि के लिए दूसरा तर्क दें।" हालांकि, मोज़िला दस्तावेज इस व्यवहार को यहां दस्तावेज़ करता है: https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers/setTimeout – minorgod

1

मैंने आईई 6 समेत हर ब्राउज़र पर इसका परीक्षण किया है, सभी अच्छी तरह से काम करता है। तो इसका उपयोग करने के लिए स्वतंत्र महसूस करें ~~