各位同学在用 vue react
技术栈做单页面应用的时候,因为是单页面所以在跳转“页面“的时候,不会根据页面的销毁而删除,大家需要手动清除定时器,但是各个技术栈都有相应的钩子函数
能够让同学们在销毁页面的时候清除定时器和绑定的事件,
但是假如我们没有用vue react等库 但是使用了单页面的思想,没有了钩子函数我们怎么办呢,
当页面跳转的时候定时器依然存在但是dom元素消失了,剩下的只能是一行行的报错信息
举个例子:
setInterval(function(){document.getElementById("div").style.width = 10px;},0}
如果页面消失,获取不到dom 就会出现 Cannot read property 'style' of null
如果我们在定时器前面加上这么一行那么问题就解决了
var a = setInterval(function(){ if (
document.getElementById("div") === null) { clearInterval(a); return; }
document.getElementById("div").style.width = 10px
;},0}
热门工具 换一换