layui弹出层定时刷新数据无法关闭定时器的解决办法

背景: 因为我有个页面是仓库的可视化,需要有个页面可以点击打开,又有个按钮点击弹出层打开,两者都调用同一个页面,因此定时器搞了很久,老是在关闭弹出层或跳转页面时无法自定清除定时任务

解决办法:在可视化页面添加一个整个项目独一无二的id,只要进入这个页面定时器就判断全局能不能搜索到这个id,如果能代表在当前页面,如果不能代表无论是页面还是弹出层都不在当前页面就可以清除定时器,

tempInterval需要定义当前js全局变量,而不是某个方法的局部变量


tempInterval = window.setTimeout (function() { 
	if($('*').find('#xxxPage').html()){ //无论是直接访问当前页面还是弹出层的方式,只要能找到当前页面的元素#xxxPage,那就执行定时刷新,否则就不刷新,这个id一定要是全局唯一
		xxx();//需要定时调用的方法
		console.log("执行定时刷新XXX页面,当前时间:" + new Date());
	}else{
		window.clearTimeout(tempInterval);
		console.log("已不在XXX页面,定时任务已清除!" );
	}
}, 300000秒); //5分钟(300000秒)刷新一次

你可能感兴趣的:(javascript,html,定时任务)