我想在表格中显示多个运行时间。 该表有3列(nr,名称,时间)。时间以'hh:mm:ss.f'格式显示,这意味着我每100ms更新一次。
function updateTimes() {
setTimeout(updateTimes, 100);
// requestAnimationFrame(updateTimes);
$("#livedata tbody tr").each(function (index, value) {
var live = $(value).data("base");
$("#" + live.Entry.Id + "_time").text(formatTimeF(moment().subtract(live.Data)));
});
}
//Create Table Row
function UpdateLive(live) {
var e = $("#" + live.Entry.Id);
if (e.length == 0) {
e = $("<tr id='" + live.Entry.Id + "' class='live'/>");
$("<td id='" + live.Entry.Id + "_name" + "'></td>").appendTo(e);
$("<td id='" + live.Entry.Id + "_nr" + "'></td>").appendTo(e);
$("<td id='" + live.Entry.Id + "_time" + "'></td>").appendTo(e);
e.appendTo($("#livedata"));
}
e.data("base", live);
}
代码正常工作,时间在“普通”PC上按预期显示,我的问题是移动设备(手机)。似乎更新Intervall(100ms)对于大多数这些设备来说太快了,所以时间开始“跳跃”。如果我只更新现有表元素的时间,那么“跳跃”就不那么难了,但是如果我添加表行,那么在添加行之前它会变得更糟。 我使用JQuery来操作表。
有没有人知道如何改善我的表现?
亲切的问候 马努
答案 0 :(得分:0)
一些想法:
$
选择器一直访问它们。例如。使用$(live.childNodes[2])
代替$("#" + live.Entry.Id + "_time")
,或存储对单个单元格的引用。然后,您可以删除单元格的所有id
属性。$('<td>')
增加了多少开销。也许document.createElement('td')
明显更快。