如何在页面重新加载后保留变量的值

How to retain value of the variable after the page is reloaded?

本文关键字:加载 保留 变量 新加载      更新时间:2023-09-26

在我的代码中有一个函数,假设在按下按钮时将页面刷新时间从50秒逐渐减少到10秒。

  <div id="signin" onclick="pgeReload()"></div>
   ....
 <script type="text/javascript">
   var count=0;
   function pgeReload(){
     if(count <= 4){
       count++;
     }
     var times = count*10000;
     var pospond = 50000-count;
     setTimeout(function(){window.location.reload()}, pospond);
   }
 </script>

我的问题是页面的重新加载总是在50秒后发生,因为(如果我得到正确的)变量count总是在页面重新加载时被重新分配为0。

我的问题是,我可以保留计数的值后,它已增加,即使在页面刷新后?

非常感谢每个能帮助我做那件事的人。

html5的版本。但问题还是在于初值。计数总是0

<script type="text/javascript">
    var count=0;
     function pagereload(){
        if(typeof(Storage)!=="undefined")
        {
           count++;
       window.content.localStorage[key]=count;
           var tempTime = parseInt(window.content.localStorage[key])*1000;
           var pospond = 50000-tempTime;
           setTimeout(function(){window.location.reload()}, pospond);
        }
        else{
         setTimeout(function(){window.location.reload()}, 30000);
         }
   </script>

可以使用HTML5的本地存储

window.content.localStorage[key]=value; //Saving
window.content.localStorage[key]; //Accessing
delete window.content.localStorage[key]; //Delete

其中KEY =要存储的变量名,VALUE是要保存的字符串值。这只支持保存字符串,但是如果你需要保存一个对象,你可以用JSON"字符串化"这个对象。

你可以这样做:

<script type="text/javascript">
function pagereload(){
if(typeof(Storage)!=="undefined")
{
var count=(window.content.localStorage[key])? parseInt(window.content.localStorage[key]): 0;
count++;
window.content.localStorage[key] = count;
var tempTime = count*1000;
var pospond = 50000-tempTime;
setTimeout(function(){window.location.reload()}, pospond);
}
else{
setTimeout(function(){window.location.reload()}, 30000);
}
</script>

你最好看看浏览器的cookie。

http://www.w3schools.com/js/js_cookies.asp

您可以使用cookie或本地存储将数据持久地存储在浏览器上。

然后,在同一域的未来页面中,您可以使用javascript检索先前的值。如果不使用这样的技术在本地存储数据,每次重新加载浏览器页面都是全新的。

您的另一个选择是代表当前用户将数据存储在服务器上。当在客户机中更改值时,您将对服务器进行ajax调用,以便将新值存储在服务器上。然后,您可以在将来的页面中使用ajax从服务器检索值,或者服务器可以在每次请求时将当前值放入页面中。您可能需要某种识别当前用户(通常是用户登录)的方法,以便服务器能够检索正确的用户数据。

使用localstore是一个好主意,但是如果您正在寻找一些简单的东西,您可以在重新加载页面时将计数放在查询字符串中,例如:

window.location.href = url + '?count=' + count

您可以根据变量检查计数或是否为初始负载:

window.location.search

例如,如果您用?count=3重新加载页面,那么该变量的值将是?count=3。您还可以将计数本身放在查询字符串中以简化解析,如下所示:

window.location.href = url + '?' + count