Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript连接文件的运行时比单独文件慢_Javascript_Concatenation_Createjs - Fatal编程技术网

javascript连接文件的运行时比单独文件慢

javascript连接文件的运行时比单独文件慢,javascript,concatenation,createjs,Javascript,Concatenation,Createjs,我正在从事一个大型javascript项目,我遇到了一些意想不到的事情。在我的index.html中,我加载了几十个javascript文件,帧速率(基于createjs)大约为30。在我的构建脚本运行之后,所有这些javascript文件都被连接成一个并缩小。然而,iPad3上Safari的帧率已降至10(iPad4上的行为类似)。我尝试了不缩小,只进行了连接,但仍然只有10帧的fps。我做的另一个测试是手动将all.js拆分为3个单独的文件,这将fps增加到15 这里发生了什么事?我认为连接

我正在从事一个大型javascript项目,我遇到了一些意想不到的事情。在我的index.html中,我加载了几十个javascript文件,帧速率(基于createjs)大约为30。在我的构建脚本运行之后,所有这些javascript文件都被连接成一个并缩小。然而,iPad3上Safari的帧率已降至10(iPad4上的行为类似)。我尝试了不缩小,只进行了连接,但仍然只有10帧的fps。我做的另一个测试是手动将all.js拆分为3个单独的文件,这将fps增加到15


这里发生了什么事?我认为连接将导致较低的加载时间和较少的http请求,但不会导致较慢的运行时。这是意料之中的吗?我可以做些别的事情吗?或者我应该停止连接到一个文件中吗

我猜Safari可能不能很好地处理非常大的文件。它可能首先将整个文件读取到内存中,然后对其进行处理。但如果它是从一个每次都需要放大的小缓冲区开始的,那么就是内存分配延迟出现的时候

在这种情况下怎么办?除了返回到较短的文件分发(这将变得更加可重用)之外,我还想到了另一个机会:

压缩4Mb文件怎么样?如果您可以对服务器端点进行编程以提供压缩服务(例如,在gzip中),那么肯定会将其大小减少到10%-20%(因为文本文件很容易压缩到较高的比率)


(嗯……我不得不承认,我本来希望使用一个大文件可以获得更好的性能,就像您所做的那样。但是在测试之前,人们永远无法判断……

这些文件的大小是多少?10Kb、100Kb、1Mb?缩小后的javascript文件略小于4MB。