dom事件——在JavaScript中有哪些方法可以重新获得对执行线程的控制?

dom events - What are all the ways to regain control of the execution thread in JavaScript

本文关键字:新获得 执行 控制 线程 方法 JavaScript 事件 dom      更新时间:2023-09-26

我试图枚举从浏览器到JavaScript代码的入口点。这包括初始脚本执行(简单的例子),以及在放弃主执行线程后重新获得控制的所有方法。

  • 初始脚本执行
  • 事件监听器,当未以编程方式触发时(Node.addEventListener, DOMWindow.addEventListener, XMLHttpRequest.addEventListener,所有object.oneventname属性)
  • setTimeout
  • setInterval

还有其他我应该考虑的吗?

(对于好奇的人:这样做的目的是将所有入口点包装在try...catch块中,以便在UIWebView中捕获和记录iOS上的错误。但它应该是有用的一般信息。)

Web worker是另一种可以发起回调的机制。

一些浏览器在创建函数的框架的事件循环中执行跨框架函数调用。其他人则使用单一事件循环来处理所有帧,这是由于同源策略的原因。我不太了解iOS。

window.parent.functionDefinedInParent();