У меня есть несколько объектов ввода.Запуск дорогого кода только один раз, при запуске нескольких изменений
У меня есть код, который делает что-то, когда они изменяются -
for (var i=0; i<100; ++i)
my_inputs[i].on('change', function() {
showValue($(this).val()); // Display the value it changed to
someExpensiveOperation(); // A common refresh for any change
});
Я хочу, чтобы сбросить все из них 0.
for (var i=0; i<100; ++i) {
my_inputs[i].val(0);
my_inputs[i].change(); // Calls someExpensiveOperation 100 times!
}
Что хороший способ перестроить свой код, чтобы предотвратить обновление происходит при ручном сбросе значений? Будет ли обещать/отменять помощь здесь?
"Будут ли обещание/defferred помощи здесь?" Нет. Вы можете определить функцию _general_ refresh и вызвать ее один раз после цикла. – undefined
Если вы выполняете 'someExpensiveOperation' после * каждого * обновления для своего массива, и это уже вызывает проблемы, возможно, вы должны делать« someExpensiveOperation »немного разумнее. – jered