javascript - JavaScript 中事件处理和定时器服务的优先级是什么?

标签 javascript timer event-handling dom-events

我想了解 Javascript 的执行优先级。我有一个代码,其中计时器运行以在 15 秒后回调函数。但是,事件可能恰好在此之前发生并且事件处理函数可能被调用。

  1. 如果在为事件提供服务时计时器关闭,会发生什么情况?
  2. JS 是否中断事件并为计时器服务并返回事件? From ejohn's blog on How JavaScript Timer Work ,这可能不会发生。
  3. 如果定时器在 even 被服务且事件处理程序执行 clearTimeout(theTimerThatJustWentOff) 时关闭,会发生什么情况?退出事件处理程序后,计时器服务例程是否会运行?
  4. 这些行为在不同浏览器中会有多大差异?

我不是在问在两个异步事件的竞争条件下会发生什么。在我的例子中,一个已经发生并且正在接受服务,而第二个发生。

最佳答案

Javascript 运行单线程。那应该回答你的问题。所以

  1. 计时器在运行时不会响起。当您的函数完成或当它产生时(例如通过使用 setTimeout 继续执行)您的触发器将再次运行。
  2. 没有。
  3. 没有。 - 见 1。
  4. 不应有变化。

关于javascript - JavaScript 中事件处理和定时器服务的优先级是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19335590/

相关文章:

java - 制作一个简单的计时器

java - 使用按钮增加或减少 Swing 计时器速度?

android - 如何从一个 Activity 启动计时器并从另一个 Activity 停止?

java - 添加ActionLister参数

javascript - 如何删除滚动事件监听器?

excel - 在 Excel 中捕获工作表取消保护事件

javascript - 将箭头功能更改为普通功能?

javascript - 在页面加载给定的 url 字符串时触发 onclick

javascript - 无法从 Javascript 看到更新的 HTML 输入值

javascript - 根据字符数设置文本区域的精确宽度