2012-01-13 15 views
6

मैं another question in SO about setTimeout(), जहां एक उपयोगकर्ता उल्लेख किया है कि अगर समारोह तर्क एक स्ट्रिंग यह वैश्विक क्षेत्र में मूल्यांकन किया जाता है, अन्य बुद्धिमान यह नहीं है था। यह एक आंख खोलने वाला था, इसलिए मैंने सेटटाइमआउट वास्तव में कैसे काम करता है, इस बारे में अधिक जानकारी प्राप्त करने का प्रयास किया, लेकिन यह एक्मास्क्रिप्ट स्पेक का हिस्सा नहीं है और यहां तक ​​कि एमडीएन में एसओ में मिली विशिष्ट जानकारी भी नहीं थी।सेटटाइमआउट(): यदि एक्मास्क्रिप्ट स्पेक में परिभाषित नहीं किया गया है, तो मैं कहां से सीख सकता हूं कि यह कैसे काम करता है?

क्या setTimeout() काम करता है के बारे में कुछ अच्छा संदर्भ है?

+2

[यहाँ] (https://developer.mozilla.org/en/DOM/window.setTimeout) MDN पृष्ठ है: आप नीचे दिए गए MDN दस्तावेजीकरण के लिए लिंक मिल सकता है। – Pointy

+1

एचटीएमएल 5 ड्राफ्ट में: http://dev.w3.org/html5/spec/Overview.html#timers –

+0

एमडीएन के बारे में कुछ उपयोगी जानकारी है: "setTimeout() द्वारा निष्पादित कोड एक अलग निष्पादन संदर्भ में चलाया जाता है जिस समारोह से इसे बुलाया गया था। " –

उत्तर

9

setTimeout और ऐसे ईसीएमएस्क्रिप्ट विनिर्देश में नहीं हैं क्योंकि वे जावास्क्रिप्ट विशेषताओं नहीं हैं। वे ब्राउज़र पर्यावरण की window ऑब्जेक्ट की विशेषताएं हैं। अन्य वातावरण (विंडोज स्क्रिप्टिंग होस्ट, नोडजेएस, इत्यादि) में उन सुविधाओं की आवश्यकता नहीं होगी।

डब्ल्यू 3 सी window ऑब्जेक्ट और इसकी विभिन्न विशेषताओं (setTimeout सहित) को मानकीकृत करने की कोशिश कर रहा है, the latest is in the timers section of the HTML5 spec। इसमें से बहुत कुछ कोडिंग कर रहा है जो ब्राउज़र पहले से ही कर रहा है, हालांकि इसमें से कुछ (यह कहकर कि न्यूनतम अंतराल मान 4 [मिलीसेकंड] होना चाहिए) एक एपीआई विनिर्देशन और कार्यान्वयन के लिए बाहर होने के लिए (मेरे लिए) लगता है अपने दिमाग बनाओ (in tests, आप वर्तमान ब्राउज़र को ओपेरा के स्पष्ट अपवाद के साथ खुशी से कम अंतराल कर सकते हैं जो कि स्पेक कहता है)।

+0

वाह उन HTML5 एचटीएमएल हमेशा मुझे seasick बनाते हैं। लेकिन मैंने वेब श्रमिकों के संबंध में स्थिति के बारे में सोचा नहीं था। – Pointy

+0

मुझे लगता है कि डब्ल्यू 3 सी विंडो ऑब्जेक्ट स्पेक छोड़ दिया गया है। एचटीएमएल 5 पूरी तरह से 'विंडो' ऑब्जेक्ट निर्दिष्ट करता है, या कम से कम प्रयास करता है। –

+0

वह मसौदा "इसे लिखने की आवश्यकता" या "यहां क्या रखना है" का आधा भरा था? एक डब्ल्यू 3 सी spec के लिए हंसने की तरह। बीटीडब्ल्यू, आपका आखिरी लिंक टूटा हुआ है। – rvighne

5

setTimeout() विधि window ऑब्जेक्ट पर एक विधि है।

https://developer.mozilla.org/en/DOM/window.setTimeout

+0

मैंने अभी अपडेट किया है कि स्ट्रिंग पैरामीटर का मूल्यांकन करने के लिए उपयोग किए गए दायरे के उल्लेख के साथ। – Pointy