后台js脚本是否在Chrome OS应用程序中的其他线程上运行?

时间:2017-07-22 20:29:54

标签: javascript google-chrome-app google-chrome-os

在Chrome操作系统应用的清单上,必须声明后台js脚本。

{
  "name": "Hello World!",
  "description": "My first Chrome App.",
  "version": "0.1",
  "manifest_version": 2,
  "app": {
    "background": {
      "scripts": ["background.js"]
    }
  },
  "icons": { "16": "calculator-16.png", "128": "calculator-128.png" }
}

这些是否都在自己的线程中运行?

他们是否相互阻止或在应用程序窗口上运行的JS线程?

1 个答案:

答案 0 :(得分:1)

Chrome应用窗口只是"视图",并且不在单独的进程中。这是证明。每个应用视图页面都可以运行chrome.runtime.getBackgroundPage以直接引用后台页面的javascript上下文(所有变量,函数等)。此外,后台页面可以引用应用程序窗口的javascript上下文,使用chrome.app.window.getAll引用返回的appWindow对象上的contentWindow

正如另一位评论者指出的那样,Chrome扩展程序的情况略有不同,但由于问题是关于应用程序,我们只关心它。