Javascript连接文件的运行速度比单独文件慢
javascript concatenated file has slower runtime than the separate files
我正在做一个大的javascript项目,我遇到了一些我没想到会发生的事情。在我的index.html中,我加载了几十个javascript文件,帧率(基于createjs)大约是30。在我的构建脚本运行之后,所有这些javascript文件都被连接成一个并缩小。然而,在iPad 3上的Safari中,帧率下降到了10 (iPad 4上也有类似的情况)。我尝试不缩小,只进行了连接,但帧率仍然只有10。我做的另一个测试是手动将我的all.js分成3个单独的文件,这将fps增加到15。
这是怎么回事?我认为连接会导致更低的加载时间和更少的http请求,但不会导致更慢的运行时。这在预料之中吗?我能做点别的吗,或者我应该停止连接到一个文件中吗?
我猜可能是Safari不能很好地处理非常大的文件。它可能首先将整个文件读入内存,然后再对其进行处理。但是,如果它从一个每次都需要扩大的小缓冲区开始,那么就会出现内存分配延迟。
在这种情况下该怎么办?除了返回到更短的文件分发(这变得更易于重用),我仍然认为另一个机会:
如何压缩 4Mb的文件?如果您可以对服务器端点进行编程,使其压缩(例如gzip),那么肯定会将其大小减少到10%-20%(因为文本文件很容易压缩到很高的比例)。
(嗯哼…我不得不承认,我本来希望一个大文件能有更好的表现——就像你那样。)
相关文章:
- 从单独的html文件预览Javascript文本
- 有什么“;错误的”;将javascript放在asp.net表单上,而不是放在单独的文件中
- jQueryAjax调用在单独的.js文件中不起作用
- Bootstrap CSS和JS我必须将它们包含在单独的文件中,或者可以编译它们
- 正在将Visual Studio 2012 JavaScript Intellisense标记移动到单独的文件
- 在 Node.JS 中,如何从单独的.js文件中返回整个对象
- google.setOnLoadCallback()在单独的JS文件中不起作用
- 单独的文件(HTML5、CSS和JS)
- Angular/Ionic:将所有文本保存在一个单独的文件中
- 将路由器配置放在Aurelia中的一个单独文件中
- 将另一个文件中的对象添加到单独文件中的阵列中
- 如何使用ngModel将自定义控件的提供程序扩展器分离到Angular 2中的单独文件中
- 在AJAX成功响应中执行Javascript代码(在单独的文件中)
- 使用AJAX在单独的文件中调用php函数
- 是否可以将此javascript代码(或其中的一部分)移动到单独的文件中,而不是内联
- JavaScript 无法从单独的文件工作
- 将 JavaScript 代码放在单独的文件中是行不通的
- 如何在单独的文件中调用函数 js.
- 如何在单独的文件中使用自定义Vtype,以便在EXT.JS中全局使用它们
- 用js调用php, js在get请求时停止,两个文件单独工作