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