एक एंबर ऐप्लिकेशन में टाल, आप एक पर्यवेक्षक या एक संपत्ति है कि एक सरणी, इसलिए की तरह देखता है कहना उदाहरण के लिए डेटा, बार-बार articles.length
बार के लिए संपत्ति फ़ंक्शन को ट्रिगर करता है।Ember.js: एंबर के माध्यम से</p> <pre><code>topContributor: (function() { // ... loop over articles (hence slow) ... }).property('[email protected]') </code></pre> <p><code>articles</code> सरणी अपडेट कर रहा है,: गिर/महंगा पर्यवेक्षकों या अभिकलन गुण
क्या सभी परिवर्तन समाप्त हो गए हैं और रनलोप फ़्लश होने पर अपडेट को एक आलसी अपडेट में पतन करने का कोई तरीका है? निम्नलिखित संकेत के लिए @wagenet और @krisselden को
'updateTopContributor' runloop द्वारा एक बार बुलाया जाएगा, लेकिन मुझे समझ नहीं आता क्या है, यह कैसे परिवर्तन के अंत से मेल खाता है: यहाँ एक उदाहरण है? मुझे लगता है कि 'लेख' सरणी अद्यतन एक से अधिक रनलोप सही लेता है? तो 'updateTopContributor' को कई बार बुलाया जाएगा ... मुझे शायद कुछ याद आती है, लेकिन मैं वास्तव में यहां प्रवाह को समझूंगा। क्या आप मुझे समझा सकते हैं? –
रनलोप का अंत होता है जब ईवेंट हैंडलिंग किया जाता है। तो यदि डेटा स्टोर के लिए एक अजाक्स प्रतिक्रिया आती है, तो यह अपडेट-अपडेट-अपडेट (पर्यवेक्षक को बार-बार ट्रिगर करना) चला जाता है, और अंत में, ब्राउज़र पर लौटने से पहले, यह रनलोप को फ्लश करेगा। संकल्पनात्मक रूप से, यह सब 'setTimeout (..., 1)' के साथ एक कॉल को परिभाषित करने के समान है। आपको [Ember.run संदर्भ] में अधिक जानकारी मिल सकती है (http://emberjs.com/api/classes/Ember.run.html) और [यह ब्लॉग पोस्ट] (http://www.thesoftwaresimpleton.com/blog/2012/04/03/परीक्षण-एंबर और-runloop /)। –
ठीक है, यदि ऐसा है तो मैं समझता हूँ, प्रवाह है runLoop1 शुरू होता है -> ajax प्रतिक्रिया -> अनुसूची updateTopContributor -> ajax प्रतिक्रिया के अंत -> runLoop1 अंत -> runLoop1 प्लावित -> runLoop2 शुरू होता है -> updateTopContributor शुरू हो रहा -> runLoop2 समाप्त होता है। पहला रनलोप चल रहा है जबकि AJAX कॉल वापस नहीं आया है? –