我正在运行两个具有依赖关系的库。我的意思是他们的执行顺序无关紧要。它们将相互检测并以任何顺序运行。
script1.js
script2.js
使用网络工作者并行(并行处理)运行这些脚本是否会受益?(MDN 文档)
我的意思是它们会比我连续运行它们运行得更快吗?
这两个脚本已经在客户端上可用(我不必下载它们)。
我正在运行两个具有依赖关系的库。我的意思是他们的执行顺序无关紧要。它们将相互检测并以任何顺序运行。
script1.js
script2.js
使用网络工作者并行(并行处理)运行这些脚本是否会受益?(MDN 文档)
我的意思是它们会比我连续运行它们运行得更快吗?
这两个脚本已经在客户端上可用(我不必下载它们)。
如果其中一个或两个脚本是纯功能性的,这意味着它不需要访问 DOM 或任何全局 Javascript 对象,那么您可以从使用 Web Workers 中受益。
如果不是这种情况,那么 Web Workers 对你没有好处。当 JS 通过 web worker 运行时,它只能将消息传递回主 DOM 线程并接收它们。
不,javascript 在网络浏览器中的单个线程上执行。所以你不能并行运行它们,除非它们不是用户交互的(不与 DOM 交互)。
但是,您可以异步加载脚本以加速初始化。
只需使用 上的async=true
属性<script>
。像这样:
<script async="async">....</script>
据我了解,网络工作者为您提供了操作系统级别的执行线程。因此,性能改进可能取决于客户端操作系统线程实现中固有的权衡。
无论如何,除非操作系统具有糟糕的线程实现,否则您应该会看到加载时间有所改善。
我敢打赌,是的。
就像问
1 man takes 6 days to do a task. How much time will 2 men take?
:-)
WebWorkers 的最理想用例