与 HTML 标准的不同


🌐 Differences from the HTML Standard

除了上面提到的脚本加载之外:

🌐 Besides script loading, mentioned above:

  • Node.js 没有源模型,所以同源和跨源的区别不存在,并且对于每个支持的方案,location.origin 都是 'null'。
  • close() 会立即终止工作线程,而不是按照规范的“关闭标志”算法,因此在 close() 之后当前任务中剩下的代码不会被执行。
  • worker global 是普通的 Node.js 全局对象,只是在它的原型链中插入了 DedicatedWorkerGlobalScope,而不是从接口创建的全新全局对象。Node.js 的全局变量,比如 process、Buffer 和 require(),在 worker 脚本中仍然可用。
  • ErrorEvent 在 Worker 个实例中派发过,包括 message 和 error,但是 filename、lineno 和 colno 总是 ''、0 和 0。未捕获的异常会终止工作线程,而未处理的 error 事件不会继续传播:它既不会到达父进程的全局作用域,也不会影响进程的退出代码。
  • 以下 WorkerGlobalScope 事件从未被触发,尽管它们的处理器属性存在:languagechange、online 和 offline,因为这些概念在 Node.js 中不存在;rejectionhandled 和 unhandledrejection,因为 Node.js 暴露了等效的功能,但并不实现 HTML 标准要求的 PromiseRejectionEvent 接口或每次拒绝的 preventDefault() 行为。
  • 从 file: URL 加载的模块工作者支持 类型剥离。