AngularJS 组件/控制器 JavaScript 文件串联加载,而不是并行加载(特定于为 AMD 编译的 Chrome)

AngularJS component/controller JavaScript files loads in series not parallel (specific to Chrome compiled for AMD)

提问人:someguy2014 提问时间:12/14/2021 更新时间:12/14/2021 访问量:74

问:

我正在研究 Flask/AngularJS 交付网页的首次加载(非缓存)的性能改进(过渡到 Angular 和更好的路由设计正在进行中,正在寻找临时修复)。

此页面包含大量 (250+) 正在加载的 JavaScript 文件。我们注意到,这些文件是在某些机器上串联加载的,而不是在其他机器上并行加载的。

该问题似乎特定于 AMD 机器 (v 96.0.4664.93) 上的 Chrome。我们在同一台机器上的Firefox或Intel机器上的Chrome上没有看到这种情况。这种差异导致加载时间增加了近 15 秒。

问题是我们可以强制有问题的浏览器与缓存并行下载这些吗?我们尝试在 script 标记中使用 async 属性,但它会导致某些文件无序加载。

javascript angularjs google-chrome 异步 amd 处理器

评论

0赞 Jeremy Thille 12/14/2021
也许值得捆绑和缩小您的文件?我怀疑这 250+ 个文件没有缩小,并且包含评论?250+文件真的是一个非常大的数字。你不能让你的用户的浏览器发出 250+ HTTP 请求,只是为了加载你的 JS 代码。你需要捆绑它。
0赞 Jeremy Thille 12/14/2021
can we force the problematic browser--> 有趣的是,你甚至似乎没有考虑到问题不在于浏览器,而在于应用程序分散在 250+ 文件中......
0赞 someguy2014 12/14/2021
@JeremyThille 我们的代码设计绝对是头号问题,哈哈。我只使用了“有问题”一词,因为它似乎只在一个 chrome 版本中受到影响。这是我们支持的传统平台。我们计划过渡到更好的设计结构,包括必要时特定于路由的文件,并使用更新的框架。只是在寻找临时解决方案。
0赞 Jeremy Thille 12/14/2021
意义。正如我所说,只需缩小并捆绑您的文件,例如使用 Gulp。使用 Gulp-uglify 缩小并使用 Gulp-concat 捆绑。它将生成一个缩小的 JS 文件,而不是 250+ 个带有注释的未缩小的 JS 文件。这已经是一个巨大的性能改进,并且在过渡到新架构时是一个很好的补丁。
0赞 Amit Kumar PRO 12/20/2021
请提供足够的代码,以便其他人可以更好地理解或重现问题。

答: 暂无答案