私はこのように私のコード内のいくつかのイベントにこの機能を購読nockoutjsのスロットリングとサブスクリプションを組み合わせるにはどうすればいいですか?
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();
}
このパターンを撮影するより簡潔な方法はありますか、これは移動するための方法ですか?
ここに大きな回答! –