【发布时间】:2018-01-21 10:34:37
【问题描述】:
在服务器端,我每 3 秒发出最后 10 行数据库;
setInterval(function() {
connection.query("SELECT * FROM report ORDER BY id DESC limit 10", function(err, rows) {
if (err) console.log(err);
else {
console.log("Last 10 record emitted.");
// console.log("rows: " + JSON.stringify(rows, null, 3));
io.emit("last_list", rows)
}
});
}, 3000);
在客户端,我将这些行附加到表中;
socket.on('last_list', function(rows) {
for (var i = 0; i < rows.length; i++) {
var row = rows[i];
$('#myTable').append('<tr><td>' + row.id + '</td><td>' + row.fabrika + '</td><td>' +
row.kumes + '</td><td>' + row.makina + '</td><td>' + row.kat + '</td><td>' +
row.sol_sag + '</td><td style="color: rgba(25, 44, 44, 1); font-weight: bolder;">' +
row.adet + '</td></tr>');
}
});
我的问题是,如何更新表格而不是每 3 秒添加新行?
【问题讨论】:
-
新增行和更新表格有什么区别?
-
这是否意味着您要清除表格并重新加载整个数据?
-
@user1041953 这正是我想要实现的目标。
-
@erayaras 但您当前的方法比每次都清理桌子要好得多。它可能会使浏览器卡在 CPU 功率较低的设备中。
-
无论如何,最好使用像Mustache.js 这样的模板引擎,以便摆脱JS代码中的内联HTML。
标签: javascript jquery mysql node.js socket.io