2016-12-25 2 views
1

У меня есть требование, где есть код java-скрипта, который делает ajax-вызов и сохраняет журнал входа пользователя в базу данных при загрузке страницы. Но проблема в том, что каждый раз, когда пользователь обновляет страницу, код запускается. Я хочу выполнить оператор только в том случае, если страница обновляется через 10 секунд, если не обновляется каждая страница. Я должен прекратить выполнение потока кода, если страница обновляется до 10 секунд.Выполнять javascript-код только при обновлении страницы через 10 секунд?

+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

youre приветствуется. пожалуйста, отметьте это как ответ, нажав зеленую галочку ... –

0

Можете ли вы установить куки? Установите значение cookie для текущего пути, при переадресации проверьте значение cookie на текущий URL. Когда он соответствует (так что этому обновление) вы можете вызвать вашу задержку 10 сек от

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

Чтобы очистить таймаут, используйте

clearTimeout(Logging) 
Смежные вопросы