2016-11-03 14 views
5

Używam tego javascript do automatycznego odświeżania strony co 30 sekund.Zapobieganie ponownemu ładowaniu Javascript Strona

<script type="text/javascript"> 
    window.setTimeout(function(){ document.location.reload(true); }, 30000); 
</script> 

Muszę dać użytkownikom opcję wyłączenia tej funkcji w dowolnym momencie przed ponownym załadowaniem strony.

Uwaga: dotyczy panelu administracyjnego, a nie ogólnodostępnej strony internetowej, a wymaganiem klienta jest automatyczne odświeżanie strony z opcją zatrzymania odświeżania przed jej kliknięciem.

Czy jest jakiś sposób, aby to osiągnąć ... To znaczy ... wyłączyć javascript przed wykonaniem?

Odpowiedz

8

clearTimeout(): anulowanie wcześniej ustalony limit czasu wywołując setTimeout().

szukasz clearTimeout():

var refresh = window.setTimeout(function(){ document.location.reload(true); }, 30000); 

$('body').on('click', '#my-button', function(){ 
    clearTimeout(refresh); 
}) 

nadzieję, że to pomaga.

+1

Dobra odpowiedź! :) – Anokrize

3

Wykonaj następujące czynności:

reload = window.setTimeout(function(){ document.location.reload(true); }, 30000); 

Lub, jeśli przy użyciu jQuery,

$("#non-reload-button").click(function(){ 
    clearTimeOut(reload) 
}); 
3

zrobić to w ten sposób:

var myVar; 

function myFunction() { 
    myVar = window.setTimeout(function(){ document.location.reload(true); }, 30000); 
} 

function myStopFunction() { 
    clearTimeout(myVar); 
} 

po prostu trzeba wezwać myStopFunction w celu zatrzymaj automatyczne przeładowanie.

2

Poniżej znajduje się kod, który będzie wykonywany co 500ms, dopóki nie klikniesz przycisku, aby go zatrzymać. Wystarczy wymienić 500 na czas, jaki chcesz i zastąp konsolę.log przy każdej operacji, którą chcesz uruchomić. Mam nadzieję że to pomoże!

let auto_refresh_active = true; 
 

 
const refresh =() => { 
 
    window.setTimeout(e => { 
 
    console.log('Hey, I am running! Click the button to stop me!') 
 
    if(auto_refresh_active == true) refresh(); 
 
    }, 500) 
 
} 
 
refresh(); 
 

 
document.querySelector('button').addEventListener('click', e => auto_refresh_active = false);
<button>stop running</button>

Powiązane problemy