我正在开发一个使用统一生成的webgl内容的Web项目。当尝试加载所需的js文件时,浏览器会冻结大约30秒。主js文件解压缩了35MB大小,所以这似乎是原因。
我希望尽可能避免这种冻结,但由于脚本需要访问UI,我无法使用WebWorkers进行此操作。我的另一个可能的解决方案是尝试将js文件拆分为较小的文件,但我不知道该怎么做。你有什么建议吗?
答案 0 :(得分:1)
如果您将async
添加到脚本代码中,例如此<script async src="app.min.js"></script>
,则不会再阻止呈现。此外,在浏览器中缓存脚本或从CDN传送脚本有助于缩短下载时间。
我们最近写了一篇关于网络效果最佳做法的文章,解释了关键渲染路径和其他前端问题here
答案 1 :(得分:0)
仅用于JS文件的35 MB似乎很荒谬。可能是整个构建可能都是那么大(纹理,媒体等)。看看here如何减少构建大小。
答案 2 :(得分:0)
虽然 35 MB 对于JS文件来说很简单,但您可以从以下指针开始:
Hard-coded
JSON,请将它们移至.josn
个文件,并仅在需要时加载它们。section_event.js
,section_data.json
,section_utils.js
和section_index.js
。如果涉及大量数据解析,您甚至可以使用section_parser.js
基本思路是将代码分成多个文件。然后,使代码更可重用。您甚至可以查看加载库以减少负载。
此外,仅在需要时加载资源 。 SPA有阶段。在需要时加载相关文件。拆分下载从1次到部分按需方式。另请查看webpack
或grunt
或gulp
以缩小js。