Ho una funzione che esegue una certa comunicazione con un server di segnalare la geometria schermata corrente, eccCome combinare la limitazione con la sottoscrizione in knockoutjs?
function sendScreenLayout() {
logElementLocations(exp.getPageCoordinates());
};
Sottoscrivo questa funzione per alcuni eventi nel mio codice come questo:
viewModel.onLayoutChange.subscribe(sendScreenLayout);
$('#right-splitter > #mainContent').resize(sendScreenLayout);
$(window).resize(sendScreenLayout);
...
setTimeout(sendScreenLayout, 1);
Alcuni di questi eventi può essere inviato troppo spesso per essere gestito utilmente dal server, e vorrei limitare le richieste ad un tasso ragionevole.
il meglio che potevo venire con era qualcosa di simile:
var triggerSend = ko.observable();
ko.computed(function() {
triggerSend();
logElementLocations(exp.getPageCoordinates());
}).extend({throttle: 200});
function sendScreenLayout() {
triggerSend.valueHasMutated();
}
Esiste un modo più succinta di catturare questo schema, o è la strada da percorrere?
Ottima risposta qui! –