Я использую Knockout js, и мне, должно быть, что-то не хватает, что очень концептуально. Я не ошибаюсь, поэтому мне трудно понять, в чем я ошибаюсь. Я просто хочу извлекать данные каждые X секунд и повторно заполнять таблицу этими данными. Я использую Knockout js для привязок. Этот пример код должен быть достаточным, чтобы отобразить вопрос:Почему этот setTimeout вообще не срабатывает?
function AppViewModel() {
var self = this;
self.servers = ko.observableArray([{ Name: 'Loading...', Url: 'Loading...', Environment: 'Loading...', Health: 'Loading...' }]);
self.refreshServers = function() {
$.ajax({
url: '@Url.Action("GetData", "Temp")',
data: { id: 1 },
type: 'POST',
success: function (data) {
self.servers(data);
console.log("finished loading data");
}
});
};
self.refreshServers();
setInterval(self.refreshServers, 15000);
}
ko.applyBindings(fViewModel);
я вызываю функцию self.refreshServers один раз непосредственно немедленно заполнить данные (возможно, есть лучший способ сделать это?), А затем я установить тайм-аут для непрерывного вызова. Я никогда не вижу второго запроса ajax и не запускается вторая функция журнала.
Ваше первое я.refreshServers вызов не имеет никакого вызова - должен быть self.refreshServers() - те, которые должны быть там, должны быть – kinakuta
Как-то он все еще вызывает функцию один раз. Первоначально у меня была self.refreshServers = новая функция, поэтому я думаю, поэтому у меня не было парнеров в какой-то момент. – Tada
он называет его один раз из-за вызова setTimeout – kinakuta