2016-12-25 114 views
1

我有一个需要的地方有一个java脚本代码,它会在页面加载时进行ajax调用并保存用户登录数据库。但问题在于,每次用户刷新页面时,代码都会执行。我只想在10秒后刷新页面时才执行语句,而不是每刷新一次页面。如果页面在10秒之前刷新,我必须停止执行代码流。仅在刷新页面10秒后执行JavaScript代码?

+1

您必须将其上次被叫做存储在Cookie或localStorage中 – charlietfl

回答

1

此代码执行所有10秒(或更长时间),触发通过重新加载页面:

您需要存储的时间(在localStorage的),在重装检查,如果现在是晚于存储时间±10秒:

function store(){ 
//store time: 
now=new Date().getTime(); 
localStorage.setItem("stored",now); 
//your password storing 
} 

window.onload=function(){ 
now=new Date.getTime(); 
if(!localStorage.getItem("stored")){ 
//no time stored, so lets store 
store(); 
return; 
} 
last=localStorage.getItem("stored"); 
//if now is later than last+10seconds 
if(now>last+1000*60*10){ 
store(); 
} 
} 
+0

谢谢,这是行得通的。 – sandy

+0

欢迎你。请将其标记为答案,通过按绿色勾号... –

0

你能设置饼干吗?将cookie值设置为当前路径,在重定向时检查cookie值与当前URL。当它匹配(所以它是一个刷新),您可以通过

Logging = setTimout(function() { 
    Alert("10 seconds passed"); 
    }, 10 * 1000); 

触发延时10秒要清除超时,使用

clearTimeout(Logging)