为了账号安全,请及时绑定邮箱和手机立即绑定

关于时间间隔的问题

t=setTimeout('showTime()',1000),这里例子上为什么是500ms?

正在回答

2 回答

我个人的理解是,因为setTimeout是“等至少***ms才执行,且执行一次”,而不是“每隔***ms就执行(这是setInterval的功能)”。

根据w3school的说明,setTimeout本身是没有循环的功能的。它之所以能“循环”是因为被showTime在内部的最后调用了,而showTime在调用setTimeout之前运行的代码也是要花时间的,那如果我们假设showTime的代码比较长,需要600ms才执行完,那你设setTimeout是500ms的话,总时间就是600 + 500 >1000ms了。当然这里不需要600ms那么久,但setTimeout设成1000的话那时间间隔肯定大于1000ms的了。

参考资料:

http://www.w3school.com.cn/jsref/met_win_settimeout.asp

http://www.w3school.com.cn/jsref/met_win_setinterval.asp

http://www.phpweblog.net/rainman/archive/2009/01/05/6267.html

0 回复 有任何疑惑可以回复我~
#1

百兽凯多00 提问者

我写成1000感觉也还好...
2017-03-09 回复 有任何疑惑可以回复我~
#2

风飘叶摇 回复 百兽凯多00 提问者

差别并不会太大,JS的运行速度是很快的,何况这个函数作用是刷新读取电脑系统的时间,而不是改变时间,快一点慢一点都是准的,不怕
2017-09-24 回复 有任何疑惑可以回复我~

500ms只是0.5s,正常钟表应该设置为1000

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
倒计时效果
  • 参与学习       55626    人
  • 解答问题       242    个

电商网站限时抢购倒计时效果计算思路和方法,前端开发必备技术

进入课程

关于时间间隔的问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信