setInterval 在非活动选项卡上不会减慢速度

2024-01-08

这可能与一个非常常见的问题相反:当您使用setInterval在一个选项卡上切换到另一个选项卡时,间隔会显着缩短(即减慢)。这对于音频计时来说非常明显,因为您可以听到它被减慢的声音。

但在最新的 Chrome 56 和 Firefox 51 上,我无法再让它发生了。

然而,在 Chrome 上,很少且看似随机地切换选项卡can有效果。它甚至会因为某种原因限制 Web Workers。

这让我很头疼,因为我正在尝试编写一些需要非常精确的计时的 Web Audio API 内容,而且我什至看不到 setInterval 和 Web Workers 之间的区别,它们应该在自己的线程上运行。

为什么不setInterval像以前一样操作并限制非活动选项卡?

更新:即使是setInterval在通过 Blob URI 加载的 Web Worker 中,在某些情况下会受到限制,例如切换选项卡。


由于javascript是运行时编译代码(由浏览器在运行时编译,浏览器必须对其进行工作)。当您导航到其他选项卡时,该页面有自己的脚本,浏览器也必须编译该代码。因此,浏览器会为活动选项卡中的脚本分配较高的优先级,而其余选项卡中的脚本则分配较低的优先级。因此它将影响非活动选项卡上的脚本。但是,如果您的计算机具有较高的可用 RAM,则不会出现此问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

setInterval 在非活动选项卡上不会减慢速度 的相关文章

  • iPad - 无法在框架内滚动

    我无法滚动 iPad Safari 中框架内调用的 pdf 我已经尝试过两件事 2 指滚动 使用对象 嵌入代替框架 但这是行不通的 事实上我已经尝试了很多东西 溢出 高度等等 请帮我 先感谢您 根据这篇文章http support appl
  • 如何从 JavaScript 中的字符串中删除空白字符?

    如何从 JavaScript 中的字符串中删除空白字符 修剪很容易 但我不知道如何将它们从inside字符串 例如 222 334 gt 222334 您可以使用正则表达式 如下所示来替换所有空格 var oldString 222 334
  • libxmljs 的替代品 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 目标 使用 Node js 访问网页 使用 xpath 语法操作 DOM 并打印新的 DOM libxm
  • 按键对 JavaScript 对象进行排序

    我需要按键对 JavaScript 对象进行排序 因此 以下内容 b asdsad c masdas a dsfdsfsdf 会成为 a dsfdsfsdf b asdsad c masdas 这个问题的其他答案已经过时 与实施现实不符 并
  • 在其他不可滚动的 div 上滚动时如何滚动可滚动的 div?

    我知道这个问题听起来很令人困惑 但这就是我想要做的 在下面的代码片段中 如果用户在绿色 div 上滚动 我希望黄色 div 相应地滚动 就像滚动黄色 div 一样 请注意 黄色 div 有overflow auto 但绿色的则不然 docu
  • 我可以动态创建/销毁 Vue 组件吗?

    因此 我正在创建一个相当复杂的 Vue 应用程序 它从后端 API 获取数据并将其显示在前端 具体取决于用户选择的过滤器 它的默认设置是立即显示所有内容 然后一旦用户选择过滤器 它就会拉出不具有这些属性的 卡片 组件 直到今天 一切都很顺利
  • 雅虎 OAuth2 隐式授予流程不适用于新的雅虎应用程序

    我有现有的网络应用程序和专用雅虎应用程序 https developer yahoo com apps 在职的 它用OAuth2 隐式授权流程 https developer yahoo com oauth2 guide flows imp
  • window.open:是否可以打开一个新窗口并修改其 DOM

    我想打开一个新窗口 var my window open iframe html blank height 600 width 600 但当我打开它时 我想修改它的DOM 我尝试过 var div my document createEle
  • setInterval() 在用户离开选项卡时暂停?

    javascript 中是否有任何方法的行为类似于 setInterval 并且当用户离开选项卡时停止并在用户再次进入选项卡时恢复 您可以使用以下方法创建自己的 API可见性API https developer mozilla org e
  • 使用 :hover 作为元素的内联样式(使用 HTML/CSS/php)[重复]

    这个问题在这里已经有答案了 可能的重复 如何将 a hover 规则嵌入到文档中间的样式属性中 https stackoverflow com questions 131653 how do i embed an ahover rule i
  • 窗口大小调整触发的 DOM 事件

    我有一个布局相当复杂的页面 最初打开页面时 某些元素的对齐存在问题 但是 可以通过更改浏览器窗口的大小来 永久 解决此问题 显然 我不希望用户必须调整浏览器窗口的大小才能使页面正确显示 所以我想知道是否有一种方法可以在页面首次加载时以编程方
  • 带有 mkdocs 的本地 mathjax

    我想在无法访问互联网的计算机上使用 MathJax 和 Mkdocs 因此我不能只调用 Mathjax CDN Config mkdocs yml site name My Docs extra javascript javascripts
  • put方法中的Angularjs文件上传不起作用

    我有一个简单的待办事项应用程序 我试图在其中上传照片和单个待办事项 现在我已经创建了这个工厂函数来负责待办事项的创建 todosFactory insertTodo function todo return http post baseUr
  • 将 onclick 事件应用于页面加载时不存在的元素

    我将列表样式设置为看起来像选择框 并且当用户单击列表中的元素时我想触发一个函数 但是该元素是通过加载的AJAX因此 当页面加载并且我无法绑定时不存在onclick事件到它onDomReady 如果我把它作为一个普通的选择列表 我可以只标记一
  • 将 window.location 传递给 Flask url_for

    我正在使用 python 在我的页面上 当匿名用户转到登录页面时 我想将一个变量传递到后端 以便它指示用户来自哪里 发送 URL 因此 当用户单击此锚链接时 a href Sign in a 我想发送用户当前所在页面的当前 URL
  • 如何使用 JavaScript 获取元素的填充值?

    我有一个textarea在我的 HTML 中 我需要获取整数或浮点形式的填充数值 以像素为单位 我如何使用 JavaScript 获取它 我没有使用 jQuery 所以我正在寻找纯 JavaScript 解决方案 这将返回padding l
  • 使用 AJAX 和 JQuery 按设定的时间间隔刷新 Rails 部分

    I have a page in my rails application that looks like 现在 我有另一个用 python 编码的人工智能应用程序 它处理视频 显示在 Rails 应用程序页面的左侧 并使用捕获的车辆及其相
  • 如何为 Imagus 悬停缩放扩展开发自定义过滤器?

    当我读到关于悬停缩放是邪恶的 http www reddit com r YouShouldKnow comments 1wjrc8 ysk that the hover zoom extension is spyware 哎呀 有两篇文章
  • 具有固定顶部菜单的语义 UI 侧边栏

    Semantic UI 对其进行预警侧边栏页面 http semantic ui com modules sidebar html usage 当侧边栏出现时 固定位置内容可能会出现改变其位置的问题 然后它提供了该问题的两种可能的解决方案
  • p5 向量减法“sub”返回错误

    我一直在尝试将 p5 草图上传到 React 构建中 使用react p5 wrapper 我能够成功在屏幕上渲染画布 但是 某些矢量函数会导致错误 var distance this position dist ball position

随机推荐

  • 在 React Native 中,如何制作像 Instagram 这样的交互式点击并按住模式?

    Instagram 有一个非常酷的交互功能 您可以点击并按住 也称为长按 图像 然后会出现一个交互式弹出窗口 一旦出现 您可以将手指拖动到操作按钮之一 然后移开手指即可应用该操作并关闭弹出窗口 Here it is in action An
  • 将命令行参数传递给使用 Padre 运行的 Perl 程序

    有没有办法将命令行参数传递给从 Padre 菜单 运行 gt 运行脚本 运行的 Perl 程序 在 工具 gt 首选项 gt 语言 Perl5 下 设置 脚本参数 并保存 或者在 工具 gt 首选项 gt 高级 下 查看 run scrip
  • OAuth 2.0 生成令牌和秘密令牌 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我正在使用 Apache Oltu
  • 如何动态添加静态资源到spring-boot jar应用程序?

    我有 spring boot 应用程序 它创建带有 html 静态页面的目录 当我通过命令启动应用程序时 mvn spring boot run一切正常 包含静态页面的文件夹创建于 resources 目录和客户端可以访问页面 但我希望将我
  • 通过 sqlalchemy 和 pyodbc 访问 MS SQL 数据库时出现“登录超时已过期”错误

    因此 我在让 sqlalchemy 和 pyodbc 与远程 MS SQL Server 一起使用时遇到了一些麻烦 本地 sqlcmd 工作正常 但当我尝试通过 python 代码读取数据库时却无法正常工作 任何帮助 将不胜感激 环境 Ce
  • PHP FILTER_VALIDATE_EMAIL 最大长度

    使用 PHP 时允许的最大字符长度是多少FILTER VALIDATE EMAIL 我正在测试我的脚本来测试允许的最大长度 200 的函数 但是当我使用超过 200 个字符的电子邮件时 PHPFILTER VALIDATE EMAIL返回假
  • DataBase(datamodel)建立文件夹结构

    计划用 Java 构建基于文件夹的结构 我将使用 GUI 的 jquery 插件 因此我不需要有关如何显示文件夹结构的信息 我正在寻找有关如何存储文件夹信息的后端逻辑 以便可以快速有效地检索它 每个文件夹都会有多个子文件夹 从叶文件夹中 我
  • 扩展 DOMDocument 和 DOMNode:返回对象的问题

    我正在尝试扩展 DOMDocument 类 以便使 XPath 选择更容易 我写了这段代码 class myDOMDocument extends DOMDocument function selectNodes xpath oxpath
  • Airflow 远程日志记录不起作用

    我有一个正在运行的 Apache Airflow 1 8 1 实例 我有一个工作连接 及其 ID 可以写入 Google Cloud Storage 并且我的气流用户有权写入存储桶 我尝试通过添加来使用远程日志存储功能 remote bas
  • 如何在 C# 中以编程方式创建 XML 站点地图

    我正在建立一个网站 现在我想创建它的 xml 站点地图 就像 google 站点地图一样 但我想使用 C 以编程方式创建它 谁能告诉我如何使用网站的基本 url 访问 Web 服务器上的根目录 将所有页面列表放入字符串列表中 来得容易 pr
  • 文件中的正则表达式 re.sub 列表

    我有一个文本列表 可以使用以下内容重新编辑 re sub 0000 1111 data 替换模式 4 4 3 3 with 1 4 2 3对于 shell 中的一个输入 效果也很好 然而 我尝试在列表中使用这种模式给了我一个 第一行出现不良
  • 调用 HP ePrint Android 应用程序

    我正在开发一个 Android 应用程序 它应该调用 Android HP ePrint 应用程序进行无线打印 为此 我使用代码 Intent intent new Intent com hp android print PRINT int
  • 在 BigQueryIO.write() 操作之后执行进程

    我有一个以 BigQuery 表作为接收器的管道 我需要在数据写入 BigQuery 后执行一些步骤 这些步骤包括对该表执行查询 从中读取数据以及写入不同的表 如何实现以上目标 我是否应该为后者创建一个不同的管道 但在第一个管道之后调用它将
  • Spring:/** 和 /* 在路径方面的差异

    当我们引用路径时 两个星号和一个星号有什么区别 早些时候我正在调试我的 Spring 3 项目 我试图使用添加 swf
  • 在IRB中,我可以查看我之前定义的方法的源代码吗?

    如果我在 IRB 中定义了一个方法 是否有办法在稍后的会话中查看其来源 gt def my method gt puts hi gt end 稍后输出几个屏幕我希望能够写出类似的东西 gt source my method 并返回 gt d
  • Xcode 8.1 - 如何更新故事板中所有视图的框架?

    在 Xcode 8 1 中 我可以通过单击 更新框架 按钮来更新故事板中的每个视图 但我想更新所有视图 我该怎么做 They added one standalone button to the leftmost side in the c
  • Athena 无法使用 OpenCSVSerde 解析日期

    我在 S3 上有一个非常简单的 csv 文件 i d f s 1 2018 01 01 1 001 something great 2 2018 01 02 2 002 something terrible 3 2018 01 03 3 0
  • 地图上重叠注释 (MKAnnotationView) 的问题

    在我的 iPhone 应用程序中 我将 MapKit 与 MKMapView 和自定义 MKAnnotationView 结合使用 问题是当注释在地图上重叠时 在我的应用程序中 注释是照片 这些照片可能会重叠 并且当您点击前面出现的注释时
  • 从 CSV 中删除一行

    我有一个包含多行和两列的 CSV 名称 和 信息 我正在循环遍历 CSV 并检查每一行的条件 如果满足条件 我想删除该行 for i 0 i le CSV length i if CSV name Fred remove CSV i tha
  • setInterval 在非活动选项卡上不会减慢速度

    这可能与一个非常常见的问题相反 当您使用setInterval在一个选项卡上切换到另一个选项卡时 间隔会显着缩短 即减慢 这对于音频计时来说非常明显 因为您可以听到它被减慢的声音 但在最新的 Chrome 56 和 Firefox 51 上