【发布时间】:2011-07-18 12:18:40
【问题描述】:
我正在构建一个实时系统,该系统(使用 websockets)使用不同频率的实时数据更新表(可以是每秒 3 次,可以是每 2 秒一次 - 取决于数据类型) . 我目前正在努力寻找一种方法来让用户知道在过去 5 秒内何时未更新特定字段。也就是说,如果没有获取新数据,我不应该将旧值保留在那里,而是将其更改为“--”或类似的东西。
经过很长一段时间的javascript,更新字段的最终函数看起来像这样(非常简化):
function changeValue(data){
var fieldId= data.fieldId;
var value = Math.round(data.value);
$('span#'+fieldId).text(value);
}
每次需要更改字段时都会调用此函数。我有 2 到 40 个不同的字段(取决于用户)被更改。
如果没有进行更新,设置计时器以每 5 秒将字段的值更改为“--”的最佳方法是什么?
我会非常感谢一些提示, 谢谢, 卡罗尔。
【问题讨论】:
-
创建一个对象,该对象将保存上次更新字段的时间。可能通过这种方式,您只需要 1 次超时 - 这是必须检查的最短时间。检查对象,并在必要时更新字段。
-
或者我不明白你的意思,或者你需要的是一个 var,比如 handler = setInterval(setTo'--;, 5000);,并在每个 changeValue 调用中清除/设置处理程序.是吗?看你说“更改字段的值”,然后说“更改字段的值”,所以我不知道你需要哪个。
标签: javascript timer real-time websocket