Итак, я использую приведенную ниже JS для запроса API и заполнения таблицы. В соответствии с другим сообщением, которое я видел на SO на каждой итерации цикла в функции успеха, он строит массив, а затем соединяет его в jQuery и добавляет его в виде строки в таблице. Это работает холодно:jQuery - обновить вызов getJson
// get the JSON from the API
$.getJSON("helpers.php", {
func: "results",
days: "3",
})
.done(function(rows) {
$.each(rows, function() {
// populate the table
var r = new Array(), j = -1;
var matchDate = this.date;
r[++j] = '<tr>';
r[++j] = '<td><small>' + this.teamname; + '</small></td>';
r[++j] = '<td>' + this.teamscore; + '</td>';
r[++j] = '</tr>';
$('#table-results').append(r.join(''));
});
});
Что я хочу делать, это вызов каждые 3 секунды. Так я думал, что обернуть getJson вызов в setInterval функции:
setInterval(function(){
// get the JSON from the API
$.getJSON("helpers.php", {
func: "results",
days: "3",
})
.done(function(rows) {
$.each(rows, function() {
// populate the table
var r = new Array(), j = -1;
var matchDate = this.date;
r[++j] = '<tr>';
r[++j] = '<td><small>' + this.teamname; + '</small></td>';
r[++j] = '<td>' + this.teamscore; + '</td>';
r[++j] = '</tr>';
$('#table-results').append(r.join(''));
});
});
},3000);
Однако, это, очевидно, несет на «добавляющим» строк. Я хочу, чтобы он действовал как обновление таблицы, поэтому он снова запустит таблицу. Как я могу это сделать, если я не обязательно знаю длину таблицы?
почему бы не сделать $ ('# таблица-результатов') пусто() –
в начале кода getJSON.? Я даже не понимал, что есть пустая функция! –
это действительно работает, я приспособился, чтобы просто стереть тём, чтобы сохранить мои заголовки, но теперь я придирчивый - есть ли способ сделать это, не видя, как опустошается стол? Это, очевидно, удаляет контент и корректирует размер страницы, вызов api занимает около 300 мс, поэтому он заметен, затем он заправляется, поэтому он работает, но просто не чувствует себя прекрасно ... –