होने की गारंटी है ट्रिगर फ़ंक्शन तुल्यकालिक लगता है। यही है, सभी बाध्य फ़ंक्शंस अनुक्रम में निष्पादित किए जाते हैं, सिंक्रनाइज़ (चालित फ़ंक्शन कुछ असंकालिक रूप से कर सकता है, लेकिन यह सवाल नहीं है)।क्या jQuery ट्रिगर फ़ंक्शन सिंक्रोनस
क्या यह कस्टम और गैर-कस्टम (क्लिक, होवर, आदि) ईवेंट के लिए सच है? क्या कोई ऐसी घटनाएं हैं जहां जावास्क्रिप्ट की सिंगल थ्रेडेड गारंटी सही नहीं है?
यदि यह सत्य है, तो व्यवहार को प्रत्येक बाध्य फ़ंक्शन में टाइमआउट डालने के बिना असीमित रूप से निष्पादित करने के लिए बदला जा सकता है?
var ele = $('#blah');
// Example of the bound function doing something synchronously
ele.bind('customEvent.sync', function() {
// Do something synchronously
window.foo = 'foo';
});
// Example of the bound function doing something asynchronously
ele.bind('customEvent.async', function() {
window.setTimeout(function() {
// Do something asynchronously
window.bar = 'bar';
}, 0);
});
// Trigger both events
ele.trigger('customEvent');
// If trigger is guaranteed to be synchronous this should alert 'foo:undefined' or possibly 'foo:bar' depending on whether the asych function was called first
// If trigger is NOT synchronous 'undefined:undefined', 'foo:undefined', 'undefined:bar', or 'foo:bar' could be alerted
alert(window.foo + ':' + window.bar);
अद्यतन देखें:
यहां नमूने जो सवाल यह दर्शाता है Is JavaScript guaranteed to be single-threaded? कस्टम घटनाओं जावास्क्रिप्ट के एकल थ्रेड स्वभाव की वजह से तुल्यकालिक होने की गारंटी है। कुछ घटना प्रकारों में बनाया गया ब्राउज़र ब्राउज़र असंगतताओं के कारण तुल्यकालिक नहीं हो सकता है।
अगर आप क्या अपनी चिंताओं – charlietfl
मेरी चिंता का विषय है कि क्या मैं – Kyle
गति प्रदान करने के सवाल होने के लिए लगता है बाध्य कार्यों मेरी ट्रिगर कहा जाता आह्वान के बाद लाइन से पहले निष्पादित करने के लिए पर भरोसा कर सकते हैं का उदाहरण दिया पालन करने के लिए एक बहुत आसान हो विरोधाभासी: "चालित फ़ंक्शन कुछ async कर सकता है .. लेकिन यह सवाल नहीं है" और "क्या व्यवहार प्रत्येक बाध्य फ़ंक्शन में टाइमआउट डालने के बिना एसिंक निष्पादित करने के साथ बदल सकता है" (हालांकि मैं * प्रश्न नहीं था?) –