我目前处于设计阶段,想知道如何每5秒更新一张表。

我的表将显示从模型返回的只读数据。

通常,我的视图只包含<table></table> HTML,然后是一个foreach循环以写出数据。

但是,因为我想每5秒刷新一次整个表,所以我不确定如何实现它。

我知道这里有javascript 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 );

最佳答案

让您的mymethod操作呈现视图而不是返回JSON可能是最简单的。然后,您可以将div的innerHTML设置为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 );

10-07 16:48