为什么这种写法,js的setTimeout只执行一次?

JavaScript031

为什么这种写法,js的setTimeout只执行一次?,第1张

setTimeout是延迟执行,只执行一次,不是定时器

多次间断执行要用setInterval

var timer = setInterval( function(){}, 1000)

取消用clearInterval(timer)

可以考虑使用setTimeOut

你这个代码的问题,我分析,是因为每次页面刷新以后,你的定时器id都会被重新赋值为undefined

而你在页面加载时就会执行你自定义的定时器代码,代码内判断定时器id的条件语句永远不会成立,所以是不会清除定时器的

总的来说,http无状态造成的

如果一定要使用setinterval,你需要区分刷新页面后和刷新前的状态,这恐怕需要服务端帮忙了额