繁体   English   中英

页面刷新后如何停止计时器重置

[英]How do I stop timer reset after page refresh

我正在为学术目的创建几个页面,我想将“下一步”按钮隐藏几秒钟。 问题是一旦页面被刷新,计时器就会重新开始。 我希望它在页面刷新后继续,并且我想改进已经编写的代码而不是查看新的解决方案。

<strong>
    <input class="btn btn-primary btn-large btn-primary next-button" type="submit" value="Next"/>
    <script>
        var showButton = document.getElementsByClassName("btn btn-primary btn-large btn-primary next-button")[0];
        var counter = 5;
        var newElement = document.createElement("p");
        newElement.innerHTML = "You can proceed to the subsequent page in " + counter + " seconds.";
        var interval;
        showButton.parentNode.replaceChild(newElement, showButton);
        interval = setInterval(function() {
            counter--;
            if(counter < 0) {
                newElement.parentNode.replaceChild(showButton, newElement);
                clearInterval(interval);
            } else {
                newElement.innerHTML = "You can proceed to the subsequent page in " + counter.toString() + " seconds.";
            }
        }, 1000);
    </script>
</strong>

我确实理解 localStorage 背后的想法,但我到底需要在哪里插入它? 我试图将它插入“var counter”旁边,但它没有做我想要的。

您需要localStoragecookies来存储数据并在页面重新加载后使用。

https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage

更新

更新问题后,您需要如何从localStorage存储和获取counter变量

当您声明计数器变量时:

var counter = localStorage.getItem("counter");
counter = counter ? counter : 5 ;  // if in store then that value otherwise 5 as default

您可以使用 javascript onbeforeunload事件检测页面重新加载/刷新,同时存储计数器值以供下次使用。

 window.onbeforeunload = function() {
     localStorage.setItem("counter", counter);
 };

更新-2

这是您可以使用的工作小提琴:

https://jsfiddle.net/wdar3yuq/

Javascript 是客户端的。 它将在重新加载或任何其他事情时重置

您的问题的一个简单解决方案可能是 HTML5 storagesession storage

例子:

// Store
localStorage.setItem("lastname", "Smith");
// Retrieve
document.getElementById("result").innerHTML = localStorage.getItem("lastname");

HTML web 存储提供了两个对象用于在客户端存储数据:

  1. window.localStorage - 存储没有过期日期的数据
  2. window.sessionStorage - 存储一个 session 的数据(关闭浏览器选项卡时数据丢失)

本地存储 Object

localStorage object 存储没有过期日期的数据。 关闭浏览器时数据不会被删除,将在下一天、下周或下一年可用。

更多关于 LocalStorage 的文档在这里

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM