Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 后台js脚本是否在Chrome OS应用程序的不同线程上运行?_Javascript_Google Chrome App_Google Chrome Os - Fatal编程技术网

Javascript 后台js脚本是否在Chrome OS应用程序的不同线程上运行?

Javascript 后台js脚本是否在Chrome OS应用程序的不同线程上运行?,javascript,google-chrome-app,google-chrome-os,Javascript,Google Chrome App,Google Chrome Os,在Chrome OS应用程序的清单上,必须声明后台js脚本 { "name": "Hello World!", "description": "My first Chrome App.", "version": "0.1", "manifest_version": 2, "app": { "background": { "scripts": ["background.js"] } }, "icons": { "16": "calculato

在Chrome OS应用程序的清单上,必须声明后台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线程?

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


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

这只是html中多个脚本标记的简写。只有一个背景页。另外,JavaScript是单线程的。JS是单线程的(除非使用worker),但浏览器窗口有自己的线程。无论如何,我希望看到一个源代码来确认。浏览器窗口的内部实现是无关的。运行页面脚本的JS引擎是单线程的。这就是它一直以来的方式。至于确认,您可以通过在devtools或“扩展系统将生成一个后台页面,其中包含脚本属性中列出的每个文件”中检查扩展的后台页面来查看它。是的,由于扩展自身的页面都具有相同的
chrome扩展://***id***
,因此它们运行的过程与您在chrome任务管理器中看到的过程相同。背景页只是具有相同来源的另一页。