拆分非常大的javascript文件
Split very large javascript file
我正在做一个使用unity生成的webgl内容的web项目。当尝试加载所需的js文件时,浏览器会冻结大约30秒。主js文件有35MB大小的解压缩,所以这似乎是原因。
如果可能的话,我想避免这种冻结,但我无法使用WebWorkers做到这一点,因为脚本需要访问UI。我的另一个可能的解决方案是尝试将js文件分割成较小的,但我不知道如何做到这一点。你有什么建议吗?
如果你添加async
到你的脚本标签,像这样的<script async src="app.min.js"></script>
,它将不再阻止渲染。此外,在浏览器中缓存脚本或从CDN传递脚本可以帮助减少下载时间。
35MB对于一个网站来说太大了。你确定里面没有很多没用的东西,比如图书馆吗?
我们最近写了一篇关于web性能最佳实践的文章,在这里解释了关键的渲染路径和其他前沿问题
仅为JS文件35 MB似乎很荒谬。整个构建可能就是这个大小(纹理、媒体等)。查看一下如何减小构建大小。
虽然35 MB对于JS文件来说太大了,但您可以从以下指针开始:
- 创建实用程序并重用代码。这可以是任何级别。无论是通用组件(HTML生成代码)还是验证逻辑,如果它可以使用参数来配置,那就创建一个函数并使用它。
- 如果你有
Hard-coded
JSON在你的js,移动到.josn
文件和加载他们只有当他们需要。 - 根据视图中的节拆分文件。在spa中,有些情况下部分是不可见的。对于这种情况,不要加载这样的文件。将代码库从1个文件扩展到100个文件。
- 如果您有很多事件侦听器,请将它们移到不同的文件中。你可以有
section_event.js
,section_data.json
,section_utils.js
和section_index.js
。如果涉及到大量的数据解析,您甚至可以使用section_parser.js
基本思想是将代码拆分为多个文件。然后,让代码更易于重用。你甚至可以查看加载库来减少你的负载。
同样,只在需要时加载资源。SPA有阶段。在需要时加载相关文件。拆分下载从一次到部分,按需方式。也可以查看webpack
或grunt
或gulp
来缩小js.
相关文章:
- 使用压缩的JavaScript文件(不是运行时压缩)
- 如何包含特定于每个视图angularjs的javascript文件
- 将数据从javascript文件导入VB.Net页面
- Chrome加载旧版本的Javascript文件
- 操作员”;新的“;根据我想在几个JavaScript文件中使用的类,在JavaScript中使用
- gulp-if-javascript文件,但不在gulp-useref的特定目录中
- 如何在visualstudio中调试web api时编辑javascript文件
- 关于引入外部javascript文件的问题&css通过https
- 有没有办法在tinymceiframe中加载一个外部javascript文件
- 什么'是在asp.net MVC中将本地化的resources.resx文件转换为javascript文件的有效
- 在一个javascript文件中为整个网站创建标签
- 如何在定义js文件后为外部javascript文件设置变量
- 显示IIS上javascript文件(SOAP请求)的XML响应
- ResolveUrl没有'我似乎不适合当链接到具有动态虚拟目录的外部javascript文件时
- 我应该将MVC视图特定的javascript文件放在哪个文件夹中
- Django'支持Javascript文件中的翻译
- MVC正在忽略我的Javascript文件
- 为什么不't我的ruby代码与javascript文件一起插入
- 在Javascript文件中获取PHP变量
- 如何在Windows中将Javascript文件编译成二进制文件