Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否可以将setTimeout函数存储在本地存储器中?_Javascript_Jquery_Local Storage_Settimeout - Fatal编程技术网

Javascript 是否可以将setTimeout函数存储在本地存储器中?

Javascript 是否可以将setTimeout函数存储在本地存储器中?,javascript,jquery,local-storage,settimeout,Javascript,Jquery,Local Storage,Settimeout,前提是我有下面的javascript代码 var timeout = setTimeout(function(){ alert('this is executed after 5 seconds'); }, 5000); localStorage.setItem('timeout_event', timeout); 我已经检查了setTimeout函数的返回值是否为id或其他内容。如果用户刷新页面,如何重新运行超时事件?有可能吗 任

前提是我有下面的javascript代码

var timeout = setTimeout(function(){
                alert('this is executed after 5 seconds');
              }, 5000);

localStorage.setItem('timeout_event', timeout);
我已经检查了setTimeout函数的返回值是否为id或其他内容。如果用户刷新页面,如何重新运行超时事件?有可能吗


任何帮助都可以。提前感谢。

如果希望在刷新页面时执行超时功能,只需在
窗口中添加该功能。onload

var timeout = setTimeout(function(){
                alert('this is executed after 5 seconds');
              }, 5000);

window.onload = timeout;
这对我来说很好

如果你想让它被执行多次,那么选择

它将一直执行,直到您调用
clearInterval(超时)

如果你想要多次超时,那么你应该这样做

var timeout = setTimeout(function(){
                alert('this is executed after 1 second');
              }, 1000);

var timeout1 = setTimeout(function(){
                alert('this is executed after 2 seconds');
              }, 2000);

var timeout2 = setTimeout(function(){
                alert('this is executed after 3 seconds');
              }, 3000);
window.onload = timeout;timeout1;timeout2;

这是因为setTimeout会在页面刷新时计算时间,这对我来说很好

如果希望在页面刷新时执行超时函数,只需在
窗口中添加该函数。onload

var timeout = setTimeout(function(){
                alert('this is executed after 5 seconds');
              }, 5000);

window.onload = timeout;
这对我来说很好

如果你想让它被执行多次,那么选择

它将一直执行,直到您调用
clearInterval(超时)

如果你想要多次超时,那么你应该这样做

var timeout = setTimeout(function(){
                alert('this is executed after 1 second');
              }, 1000);

var timeout1 = setTimeout(function(){
                alert('this is executed after 2 seconds');
              }, 2000);

var timeout2 = setTimeout(function(){
                alert('this is executed after 3 seconds');
              }, 3000);
window.onload = timeout;timeout1;timeout2;
这是因为setTimeout计算页面刷新后的时间,这对我来说很好

我已经检查了
setTimeout
函数的返回值是否为id或其他内容

是的,它是一个数字id,您可以将其传递到
clearTimeout
,以取消计划的函数运行

如果用户刷新页面,如何重新运行超时事件

是的,当页面卸载时,所有未完成的超时都将中止,因此您需要在新页面上重新启动超时

有可能吗

是和否。您将无法运行从上一页计划的函数-其所有上下文/范围都将丢失-您需要在新页的上下文中创建一个新的

但是,如果您希望基于跨页面的超时/间隔执行某些功能,可以使用或类似的方法来执行。您将存储指定函数运行的时间戳,以及它是否已经运行的标志。这样,您就可以在下面的页面上检查是否以及何时需要重新安排功能

我已经检查了
setTimeout
函数的返回值是否为id或其他内容

是的,它是一个数字id,您可以将其传递到
clearTimeout
,以取消计划的函数运行

如果用户刷新页面,如何重新运行超时事件

是的,当页面卸载时,所有未完成的超时都将中止,因此您需要在新页面上重新启动超时

有可能吗

是和否。您将无法运行从上一页计划的函数-其所有上下文/范围都将丢失-您需要在新页的上下文中创建一个新的


但是,如果您希望基于跨页面的超时/间隔执行某些功能,可以使用或类似的方法来执行。您将存储指定函数运行的时间戳,以及它是否已经运行的标志。这样,您就可以在下面的页面上查看是否以及何时需要重新安排该功能。

谢谢大家的帮助

我设法找到了解决问题的办法

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>

    <title>Testing</title>
    <script type="text/javascript">
        var timeout_time = 10;
        var time_remaining = 0;

        if(localStorage.getItem('timeout_time')==null){
            run_timeout(timeout_time);
        }
        else{
            run_timeout(localStorage.getItem('timeout_time'))
        }

        setInterval(function(){
            time_remaining = localStorage.getItem('timeout_time');

            if(time_remaining > 1 || time_remaining != null){
                localStorage.setItem('timeout_time', time_remaining - 1);
            }
        }, 1000);

        function run_timeout(time){
            setTimeout(function(){
                alert('executed on 10 seconds');
                localStorage.removeItem('timeout_time');
            }, time * 1000);
            localStorage.setItem('timeout_time', time);
        }


    </script>
</head>
<body>
    This is the test page.
</body>
</html>

测试
var超时时间=10;
var时间_剩余=0;
if(localStorage.getItem('timeout\u time')==null){
运行超时(超时时间);
}
否则{
运行超时(localStorage.getItem('timeout\u time'))
}
setInterval(函数(){
剩余时间=localStorage.getItem('timeout_time');
如果(剩余时间>1 | |剩余时间!=null){
setItem('超时时间',剩余时间-1);
}
}, 1000);
函数运行超时(时间){
setTimeout(函数(){
警报(“10秒执行”);
localStorage.removietem('timeout_time');
},时间*1000);
setItem('timeout\u time',time);
}
这是测试页面。
我希望这能对其他人有用


再次感谢大家。

谢谢大家的帮助

我设法找到了解决问题的办法

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>

    <title>Testing</title>
    <script type="text/javascript">
        var timeout_time = 10;
        var time_remaining = 0;

        if(localStorage.getItem('timeout_time')==null){
            run_timeout(timeout_time);
        }
        else{
            run_timeout(localStorage.getItem('timeout_time'))
        }

        setInterval(function(){
            time_remaining = localStorage.getItem('timeout_time');

            if(time_remaining > 1 || time_remaining != null){
                localStorage.setItem('timeout_time', time_remaining - 1);
            }
        }, 1000);

        function run_timeout(time){
            setTimeout(function(){
                alert('executed on 10 seconds');
                localStorage.removeItem('timeout_time');
            }, time * 1000);
            localStorage.setItem('timeout_time', time);
        }


    </script>
</head>
<body>
    This is the test page.
</body>
</html>

测试
var超时时间=10;
var时间_剩余=0;
if(localStorage.getItem('timeout\u time')==null){
运行超时(超时时间);
}
否则{
运行超时(localStorage.getItem('timeout\u time'))
}
setInterval(函数(){
剩余时间=localStorage.getItem('timeout_time');
如果(剩余时间>1 | |剩余时间!=null){
setItem('超时时间',剩余时间-1);
}
}, 1000);
函数运行超时(时间){
setTimeout(函数(){
警报(“10秒执行”);
localStorage.removietem('timeout_time');
},时间*1000);
setItem('timeout\u time',time);
}
这是测试页面。
我希望这能对其他人有用


再次感谢大家。

检查
timeout
的值。它只是一个计时器的整数ID,可以传递到
clearTimeout
setTimeout
返回计时器的ID,每次重新打开浏览器时它都会重置。请检查
timeout
的值。它只是一个计时器的整数ID,您可以将其传递到
clearTimeout
setTimeout
返回计时器的ID,并且每次重新打开浏览器时它都会重置。我们有没有办法运行多个超时变量?哦..我的意思是…使用