您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

是否有比setTimeout更准确的方法来创建Javascript计时器?

是否有比setTimeout更准确的方法来创建Javascript计时器?

是否有任何技巧可以确保setTimeout()准确执行(无需借助外部API),或者这是一个失败的原因?

不,不。您不会通过它获得任何接近完美准确的计时器的功能setTimeout()-尚未为此设置浏览器。 ,您也不需要依靠它来计时。多数动画库是在几年前弄清楚的:您使用设置了回调setTimeout(),但根据(new Date()).milliseconds(或等效值)的值确定需要执行的操作。这使您可以在较新的浏览器中利用更可靠的计时器支持,同时在较旧的浏览器上仍可正常运行。

它还 可以避免使用太多计时器 !这很重要:每个计时器都是一个回调。每个回调都执行JS代码。在执行JS代码时,浏览器事件(包括其他回调)将被延迟或丢弃。回调完成后,其他回调必须与其他浏览器事件竞争才能执行。因此,一个在该时间间隔内处理所有待处理任务的计时器将比两个时间间隔一致的计时器性能更好,并且(对于短超时)比两个重叠超时的计时器要好!

摘要:停止使用setTimeout()实现“一个计时器/一个任务”的设计,并使用实时时钟来平滑UI动作。

javascript 2022/1/1 18:13:59 有621人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶