2016-11-03 12 views
5

मैं इस जावास्क्रिप्ट का उपयोग हर 30 सेकंड में एक पृष्ठ को रीफ्रेश करने के लिए कर रहा हूं।जावास्क्रिप्ट पेज को फिर से लोड करें

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

मुझे उपयोगकर्ताओं को पृष्ठ को फिर से लोड करने से पहले किसी भी समय इस फ़ंक्शन को अक्षम करने का विकल्प देने की आवश्यकता है।

नोट: यह एक व्यवस्थापक पैनल के लिए है, न कि सार्वजनिक वेबसाइट, और क्लाइंट की आवश्यकता यह है कि पेज ऑटो रीफ्रेश होता है, बटन को क्लिक करके इसे रीफ्रेश रोकने के विकल्प के साथ।

क्या इसे प्राप्त करने का कोई तरीका है ... यह है .. इसे जावास्क्रिप्ट को निष्पादित करने से पहले अक्षम करें?

उत्तर

8

clearTimeout(): पहले setTimeout() फोन करके स्थापित समय समाप्त रद्द करता है।

आप के लिए clearTimeout() खोज कर रहे हैं:

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

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

आशा इस मदद करता है।

+1

बढ़िया जवाब! :) – Anokrize

3

क्या निम्नलिखित:

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

या, jQuery का उपयोग कर अगर,

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

यह इस तरह से कार्य करें:

var myVar; 

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

function myStopFunction() { 
    clearTimeout(myVar); 
} 

तुम बस करने के लिए myStopFunction कॉल करनी होगी ऑटो रीलोड को रोकें।

2

नीचे कोड है जो हर 500ms निष्पादित करना जारी रखेगा जब तक कि आप इसे रोकने के लिए बटन पर क्लिक न करें। जिस समय आप चाहते हैं उसके साथ 500 को प्रतिस्थापित करें और कंसोल.लॉग को उस ऑपरेशन के साथ बदलें जिसे आप चलाने के लिए चाहते हैं। उम्मीद है की यह मदद करेगा!

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>

संबंधित मुद्दे