jQuery计时器可以在时间x、时间y、时间z触发事件



当前我的webapp接收websocket数据以触发操作。

这会在页面重新加载时中断,因此我想要一个客户端解决方案,在那里我可以触发特定的事件。

这个想法可能吗?

假设你有

  • TimeX=从current_time开始的10秒应启动触发器X
  • TimeY=从current_time起20秒应启动触发器Y
  • TimeZ=当前时间后30秒应开始触发Z

    1. 是否可以将这些存储在html中,并在秒数倒计时为零时执行一些倒计时触发器
    2. 如果浏览器在倒计时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.:

遗憾的是,我不知道如何将其从页面上下文中传递出去,并在再次加载页面时重新加载计时器。

最新更新