setTimeout() 全局函数

您所在的位置:网站首页 定时器的使用方法图解视频 setTimeout() 全局函数

setTimeout() 全局函数

2024-07-04 21:45:23| 来源: 网络整理| 查看: 265

有很多因素会导致 setTimeout 的回调函数执行比设定的预期值更久,本节将讨论最常见的原因。

嵌套超时

正如 HTML 标准中规定的那样,一旦对 setTimeout 的嵌套调用被安排了 5 次,浏览器将强制执行 4 毫秒的最小超时。

这可以在下面的例子中看到,在这个例子中,我们嵌套了对 setTimeout 的调用,延迟为 0 毫秒,并记录每次调用处理程序时的延迟。前四次,延迟约为 0 毫秒,之后约为 4 毫秒:

html运行 之前 现在 实际延时 jslet last = 0; let iterations = 10; function timeout() { // 记录调用时间 logline(new Date().getMilliseconds()); // 如果还没结束,计划下次调用 if (iterations-- > 0) { setTimeout(timeout, 0); } } function run() { // 清除日志 const log = document.querySelector("#log"); while (log.lastElementChild) { log.removeChild(log.lastElementChild); } // 初始化迭代次数和开始时间戳 iterations = 10; last = new Date().getMilliseconds(); // 开启计时器 setTimeout(timeout, 0); } function logline(now) { // 输出上一个时间戳、新的时间戳及差值 const tableBody = document.getElementById("log"); const logRow = tableBody.insertRow(); logRow.insertCell().textContent = last; logRow.insertCell().textContent = now; logRow.insertCell().textContent = now - last; last = now; } document.querySelector("#run").addEventListener("click", run); * { font-family: monospace; } th, td { padding: 0 10px 0 10px; text-align: center; border: 1px solid; } table { border-collapse: collapse; margin-top: 10px; } 非活动标签的超时

为了优化后台标签的加载损耗(以及降低耗电量),浏览器会在非活动标签中强制执行一个最小的超时延迟。如果一个页面正在使用网络音频 API AudioContext 播放声音,也可以不执行该延迟。

这方面的具体情况与浏览器有关:

Firefox 桌面版和 Chrome 针对不活动标签都有一个 1 秒的最小超时值。 安卓版 Firefox 浏览器对不活动的标签有一个至少 15 分钟的超时,并可能完全卸载它们。 如果标签中包含 AudioContext,Firefox 不会对非活动标签进行节流。 追踪型脚本的节流

Firefox 对它识别为追踪型脚本的脚本实施额外的节流。当在前台运行时,节流的最小延迟仍然是 4ms。然而,在后台标签中,节流的最小延迟是 10000 毫秒,即 10 秒,在文档首次加载后 30 秒开始生效。

参见跟踪保护以了解更多信息。

超时延迟

如果页面(或操作系统/浏览器)正忙于其他任务,超时也可能比预期的晚。需要注意的一个重要情况是,在调用 setTimeout() 的线程结束之前,函数或代码片段不能被执行。例如:

jsfunction foo() { console.log("foo 被调用"); } setTimeout(foo, 0); console.log("setTimeout 之后");

会在控制台输出:

setTimeout 之后 foo 被调用

出现这个结果的原因是,尽管 setTimeout 以 0ms 的延迟来调用函数,但这个任务已经被放入了队列中并且等待下一次执行;并不是立即执行;队列中的等待函数被调用之前,当前代码必须全部运行完毕,因此这里运行结果并非预想的那样。



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭