मैं एक समारोह है कि वर्तमान स्क्रीन ज्यामिति रिपोर्ट करने के लिए एक सर्वर के साथ कुछ संचार करता है, आदिknockoutjs में सदस्यता के साथ थ्रॉटलिंग को कैसे जोड़ें?
function sendScreenLayout() {
logElementLocations(exp.getPageCoordinates());
};
है मैं इस तरह मेरे कोड में कुछ घटनाओं को यह समारोह सदस्यता ली है:
viewModel.onLayoutChange.subscribe(sendScreenLayout);
$('#right-splitter > #mainContent').resize(sendScreenLayout);
$(window).resize(sendScreenLayout);
...
setTimeout(sendScreenLayout, 1);
कुछ इन घटनाओं में से सर्वर द्वारा उपयोगी रूप से संभालने के लिए अक्सर भेजा जा सकता है, और मैं अनुरोधों को कुछ उचित दर पर थ्रॉटल करना चाहता हूं।
सबसे अच्छा मैं के साथ आ सकता हैकुछ इस तरह था:
var triggerSend = ko.observable();
ko.computed(function() {
triggerSend();
logElementLocations(exp.getPageCoordinates());
}).extend({throttle: 200});
function sendScreenLayout() {
triggerSend.valueHasMutated();
}
इस प्रतिरूप पर कब्जा करने का एक और अधिक संक्षिप्त तरीका है, या इस जाने का रास्ता है?
यहां शानदार जवाब! –