1

我有一个 Web 应用程序,它仅在几个页面上使用 Web Worker 来对主线程进行一些数字运算。我navigator.hardwareConcurrency用来确定要初始化多少个工人。 每个工作人员需要使用该importScripts功能导入约 20 个脚本文件。

尽管该功能运行良好,但我在 Chrome 开发工具中注意到浏览器正在通过网络为每个工作线程请求每个脚本。脚本确实包含缓存控制标头,因此后续加载速度很快,但较慢连接上的第一次加载速度非常慢。

例如,在我的机器上navigator.hardwareConcurrency返回 8,所以我最终加载了 8 x 20 = 160 个 JS 资源......

随着 CPU 的并发性越来越高,我认为随着时间的推移,这个问题会变得更糟。我刚刚检查了我朋友的 AMD Ryzen CPU 返回 16,总共下载了 320 个脚本!我想找到一种方法,为所有工作人员只加载一次这些脚本,而不管有多少工作人员正在初始化。

4

0 回答 0