Я пытаюсь создать форму HTML, которая обновляет некоторые из своих значений в зависимости от того, что выбрано в раскрывающемся списке. Модель представления выглядит примерно так:
function RoomViewModel() {
var self = this;
self.companyOptions = @Html.Raw({ ... });
self.companyValue = ko.observable().extend({ rateLimit: 5000 });
self.companyInfo = ko.observable();
ko.computed(function() {
if (self.companyValue()) {
$.getJSON('@Html.GenerateActionLinkUrl("GetCompanyAndPlans")', {}, self.companyInfo);
}
});
}
ko.options.deferUpdates = true;
ko.applyBindings(new RoomViewModel());
Затем я привязываю свой раскрывающийся список select
к companyValue
, и если я несколько раз меняю выбор, только через 5 секунд computed
срабатывает и отображает текущее выбранное значение. Это близко к тому, что я хочу, но одна проблема заключается в том, что при первом изменении раскрывающегося списка вам не нужно ждать 5 секунд - он должен немедленно выполнить вызов JSON. Ограничение скорости заключается в том, чтобы остановить дальнейшие запросы JSON между первым изменением и 5 секундами позже. Итак, как я могу заставить его немедленно выполнить запрос JSON и обновить для первого изменения?