Обновлять данные таблицы каждые 5 секунд - PullRequest
2 голосов
/ 02 июля 2010

В данный момент я нахожусь в стадии проектирования и мне было интересно, как я буду обновлять таблицу каждые 5 секунд.

В моей таблице будут отображаться данные только для чтения, возвращенные из моей модели.

Обычно в моем представлении будет просто <table></table> HTML, а затем цикл foreach для записи данных.

Однако, поскольку я хочу обновлять всю эту таблицу каждые 5 секунд, я не уверен, как ее реализовать.

Я знаю, что есть функция setinterval javascript, но я также не уверен, что делать в этот момент. Было бы что-то вроде этого?

напр. /

function getdata()
{
    $.getJSON("/mycontroller/mymethod"), 

                 function(data) {

                $.each(data, function(i, item) {
                    var row = {  item.ID, item.Date,
                         item.Title
                    };
               $(#table).tableInsertRows(row);
                });

            });
}
    setInterval( "getdata", 5000 );

1 Ответ

1 голос
/ 02 июля 2010

Может быть проще, чтобы ваше действие mymethod отображало представление, а не возвращало JSON. Тогда вы можете просто установить innerHTML div в ответ ajax.

В противном случае ваш подход будет работать, но вам, очевидно, придется сначала удалить существующие строки таблицы:

$('#table').tableRemoveRows({from:0, length:???});

Редактировать

перечитывая ваш вопрос, похоже, что вы спрашиваете больше о setInterval, чем о создании таблицы. Вам необходимо продолжать перерегистрацию обратного вызова, так что-то вроде этого:

function getdata()
{
    $.getJSON("/mycontroller/mymethod"), function(data) {

        $.each(data, function(i, item) {
                var row = {  item.ID, item.Date,
                     item.Title
                };
           $(#table).tableInsertRows(row);
        });

        setInterval( getdata, 5000 );

    });
}
setInterval( getdata, 5000 );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...