当前我的webapp接收websocket数据以触发操作。
这会在页面重新加载时中断,因此我想要一个客户端解决方案,在那里我可以触发特定的事件。
这个想法可能吗?
假设你有
- TimeX=从current_time开始的10秒应启动触发器X
- TimeY=从current_time起20秒应启动触发器Y
-
TimeZ=当前时间后30秒应开始触发Z
- 是否可以将这些存储在html中,并在秒数倒计时为零时执行一些倒计时触发器
- 如果浏览器在倒计时0-1之间重定向,那么是否有可能触发事件,比如说有2/3的故障转移时间
我有一定的jQuery经验,希望能听到一些关于这方面的反馈和想法。提前感谢
您需要使用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.:
是的,这是可能的。
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创建Timer。
至2.:
遗憾的是,我不知道如何将其从页面上下文中传递出去,并在再次加载页面时重新加载计时器。