我使用此javascript每30秒自动刷新一次页面。
<md-menu id="user-status-menu" md-position-mode="{{vm.position}}" md-offset="{{vm.offset}}">
我需要在重新加载页面之前随时向用户提供禁用此功能的选项。
注意:这适用于管理面板,而不是公共网站,客户端的要求是页面自动刷新,并可选择通过单击按钮在刷新之前停止刷新。
有没有办法实现这个...那就是..在执行之前禁用javascript?
答案 0 :(得分:8)
clearTimeout():通过调用
setTimeout()
取消之前建立的超时。
您正在搜索 clearTimeout()
:
var refresh = window.setTimeout(function(){ document.location.reload(true); }, 30000);
$('body').on('click', '#my-button', function(){
clearTimeout(refresh);
})
希望这有帮助。
答案 1 :(得分:3)
执行以下操作:
reload = window.setTimeout(function(){ document.location.reload(true); }, 30000);
或者,如果使用jQuery,
$("#non-reload-button").click(function(){
clearTimeOut(reload)
});
答案 2 :(得分:3)
这样做:
var myVar;
function myFunction() {
myVar = window.setTimeout(function(){ document.location.reload(true); }, 30000);
}
function myStopFunction() {
clearTimeout(myVar);
}
您只需调用myStopFunction
即可停止自动重新加载。
答案 3 :(得分:2)
下面是每隔500毫秒继续执行的代码,直到您单击按钮停止它为止。只需将500替换为您想要的时间,并将console.log替换为您希望运行的操作。希望这有帮助!
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>