2016-11-03 14 views
5

Tôi đang sử dụng javascript này để tự động làm mới trang sau mỗi 30 giây.Ngăn trang Javascript tải lại

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

Tôi cần cung cấp cho người dùng tùy chọn tắt chức năng này bất kỳ lúc nào trước khi tải lại trang.

Lưu ý: đây là bảng quản trị chứ không phải trang web công khai và yêu cầu từ khách hàng là trang tự động làm mới, với tùy chọn dừng làm mới trước khi xảy ra bằng cách nhấp vào nút.

Có cách nào để đạt được điều này ... Đó là .. vô hiệu hóa javascript trước khi nó thực hiện?

Trả lời

8

clearTimeout(): hủy bỏ một thời gian chờ trước đây thành lập bằng cách gọi setTimeout().

Bạn đang tìm kiếm clearTimeout():

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

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

Hope this helps.

+1

Tốt câu trả lời! :) – Anokrize

3

Làm như sau:

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

Hoặc, nếu sử dụng jQuery,

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

Hãy làm theo cách này:

var myVar; 

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

function myStopFunction() { 
    clearTimeout(myVar); 
} 

Bạn chỉ cần gọi myStopFunction để dừng tải lại tự động.

2

Dưới đây là mã sẽ tiếp tục chạy mỗi 500ms cho đến khi bạn nhấp vào nút để dừng. Chỉ cần thay thế 500 với thời gian bạn muốn và thay thế console.log bằng thao tác bạn muốn chạy. Hi vọng điêu nay co ich!

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>

Các vấn đề liên quan