एक फ़ंक्शन का उपयोग करना जो परिणाम लौटने के लिए कॉल की श्रृंखला बनाता है, जिसे एक बार कोणीय टेम्पलेट में कई बार अनुरोध किया जाता है। उन अनुरोधों के दौरान, परिणाम नहीं बदलेगा, इसलिए फ़ंक्शन के अंदर अतिरिक्त कॉल करने का ओवरहेड अनावश्यक है।फ़ंक्शन कॉल को सीमित करने और परिणाम विंडो को कैश करने के लिए _.memoize और _.throttle का संयोजन?
क्या एक थ्रॉटल फ़ंक्शन बनाना संभव है जो कैश करता है और एक निश्चित प्रतीक्षा समय के भीतर एक ही परिणाम देता है?
नीचे सरलीकृत उदाहरण की रेखाओं के साथ।
var throttleCache = _.memoizeThrottle(function() {
return _.now();
}, 100);
_.delay(throttleCache, 0); // now + 0ms
_.delay(throttleCache, 10); // now + 0ms
_.delay(throttleCache, 99); // now + 0ms
_.delay(throttleCache, 101); // now + 101ms
_.delay(throttleCache, 150); // now + 101ms
जहां तक मैं समझ गया है, _.memoize
कैश परिणाम अनिश्चित काल के तर्क पर आधारित है, एक तरह से स्वचालित रूप से समय-समय पर कैश फ्लश करने के लिए नहीं देख सकता। और _.throttle
और _.debounce
केवल सेट बाधाओं के भीतर फ़ंक्शन को ट्रिगर करते हैं, लेकिन निहित फ़ंक्शन के आउटपुट को वापस न करें।
मैं underscorejs के लिए स्रोत की जाँच की और उन 2 कार्यों को पहले से ही पिछले गणना परिणाम लौटने के लिए, यदि आप चाहते हैं बस के रूप में। – lastoneisbearfood