关于JS定时刷新的问题,只允许刷新一次,求大侠们来帮帮忙

这一段是我写的定时刷新,但是这样会每隔7500ms就刷新,我现在是想在停户后只刷新一次就行,那这段代码应该怎么改,下面是页面截图:在点“是”后就刷新一次页面就行下面是这个... 这一段是我写的定时刷新,但是这样会每隔7500ms就刷新,我现在是想在停户后只刷新一次就行,那这段代码应该怎么改,下面是页面截图:

在点“是”后就刷新一次页面就行
下面是这个页面的部分代码
展开
 我来答
明飞兰3B
2013-11-28 · TA获得超过548个赞
知道小有建树答主
回答量:535
采纳率:55%
帮助的人:263万
展开全部
可以考虑使用setTimeOut
你这个代码的问题,我分析,是因为每次页面刷新以后,你的定时器id都会被重新赋值为undefined
而你在页面加载时就会执行你自定义的定时器代码,代码内判断定时器id的条件语句永远不会成立,所以是不会清除定时器的
总的来说,http无状态造成的
如果一定要使用setinterval,你需要区分刷新页面后和刷新前的状态,这恐怕需要服务端帮忙了额
更多追问追答
追问
嗯,我现在把setInterval()换成了setTimeout(),但是貌似还是没达到要求,因为,我改了后点勾选框试了下效果,点一次过了7500ms页面刷新了一次,在点勾选框过了7500ms后为啥页面还会刷新呢,是不是还要改哪里?
追答
原因和我说的一样,因为你根本没有清除定时器
你的定时器是在页面加载后自动执行,而清除定时器的代码也是在页面加载后执行
每次刷新,页面重新加载

所以判断条件永远为假
百度网友992e050a8
2013-11-28 · TA获得超过583个赞
知道小有建树答主
回答量:272
采纳率:0%
帮助的人:320万
展开全部
setTimeout("f_start_multi_monitor",7500);

超时调用 只运行一次 

一般都会用它模拟循环调用

因为循环调用有些时候 对每次调用发生的时间间隔不可控

因为是单线程

但每次setTimeout的话就可以保证任务队列前面的代码都执行完

就变得可控了

更多追问追答
追问
嗯,我现在把setInterval()换成了setTimeout(),但是貌似还是没达到要求,因为,我改了后点勾选框试了下效果,点一次过了7500ms页面刷新了一次,在点勾选框过了7500ms后为啥页面还会刷新呢,是不是还要改哪里?
追答
一种可能是点勾选框触发的事件里 调用这个了刷新

另一种可能是刷新之后触发$(document).ready();里面写的f_start_multi_monitor()
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qq1111qq111111
2013-11-28 · TA获得超过1175个赞
知道小有建树答主
回答量:1166
采纳率:66%
帮助的人:605万
展开全部
将你的setInterval()方法换成setTimeout(),setInterval()是循环刷新的,而setTimeout()是刷新一次,想要再次刷新需要调用
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式