目前我的webapp收到websocket数据以触发操作。
这会在页面重新加载时中断,因此我想要一个客户端解决方案,我可以触发某个事件。
这个想法有可能吗?
说你有
TimeZ =来自current_time的30秒应该开始触发Z
我有适度的jQuery体验,我很乐意听到一些反馈和想法。提前谢谢
答案 0 :(得分:2)
您需要使用setInterval()
设置对函数的延迟调用。像这样:
var trigger;
function myFunc(t) {
switch (t) {
case "Y":
callTriggerY();
trigger = "Z";
break;
case "Z":
callTriggerZ();
trigger = "X";
break;
default:
callTriggerX();
trigger = "Y";
break;
}
setInterval(function() { myFunc(trigger); }, 10000); // call on interval
$(window).unload(function() { // call on leaving/reloading page
myFunc(trigger);
});
答案 1 :(得分:1)
至1.:
是的,这是可能的。
的JavaScript
$(function() {
$('.timer').each(function(entity) {
setTimeout(function(eval(entity.attr("data-timer-code"))), parseInt(entity.attr("data-timeout")));
}
});
HTML
<div class="timer" data-timeout="12000" data-timer-code="asdf()"></div>
我的工作是:我将特殊数据添加到div中,在JavaScript代码中,我将获取所有这些div并为每个div创建计时器。
至2:
我遗憾地不知道如何将其传递出pagecontext并在再次加载页面时重新加载计时器。