Javascript错误/不良做法

时间:2009-07-28 19:53:20

标签: javascript performance

即使只在某些页面上需要某些功能,在所有页面上加载单个javascript文件是不好的做法吗?或者文件是否应根据给定页面上的功能进行拆分,并仅由需要它们的页面加载?

7 个答案:

答案 0 :(得分:2)

根据YSlow较少的文件更好,但尝试将每个文件保持在25k以下。还要确保缩小或缩小js(和css)文件的大小。如果可能的话,在网络服务器上为js打开GZip,并设置一个远期未来的过期标题。

有关Yahoo Developer性能最佳实践的信息,请参阅here

答案 1 :(得分:1)

如果此文件非常大,则可能会影响某些用户的感知性能(即下载和呈现时间)。恕我直言,你应该将它分成合理的功能组,每个组具有相似的功能(这样页面只引用他们需要的文件)。

答案 2 :(得分:0)

取决于未使用函数的大小和复杂性。

javascript-parser无论如何只存储每个函数的位置和签名。据我所知,它只在执行时解析。

如果流量对您来说是一个问题,而只包括您需要的那些......

问候

答案 3 :(得分:0)

由于JS文件在下载后被缓存,并且JS解析器没有显示出一个大的JS文件(不是一个巨大的文件;)和一个小的js文件没有明显的性能差异,你应该采用单文件方法。

众所周知,多个js文件会降低性能。

答案 4 :(得分:0)

你最好只使用一个JS文件,因为浏览器会在第一次请求后对其进行缓存(除非他们将其关闭,在这种情况下,他们应得到他们得到的东西)。另一件将会大大增加您在页面加载时的感知性能的事情是在Web服务器中启用gzip压缩 - 大多数JS文件压缩得非常好。

答案 5 :(得分:0)

我建议使用一个大文件,浏览器会为每个文件启动一个Web请求。大多数浏览器,我不太确定最新版本的已知浏览器有多少,只发起一些并发的Web请求。在启动下一个Web请求之前,浏览器将等待文件下载。 一个大文件将被缓存,其他页面将加载更快。

正如@Frozenskys提到YSlow声称文件越少越好,雅虎团队提出的主要性能增强之一就是最小化http请求的数量。

当然,如果你有一个巨大的javascript文件,下载需要几秒钟,最好将其拆分以防止用户在页面加载前等待几秒钟。

答案 6 :(得分:0)

单个文件意味着单个下载;正如this article所解释的那样,大多数浏览器只允许对单个域进行有限数量的并行请求。虽然你的单个文件会比多个小文件大,但正如其他答案所指出的那样:

  1. 文件将被缓存
  2. 缩小和服务器端gzip压缩等技术将有助于缩短下载时间。
  3. 您还可以在页面末尾包含脚本,以改善感知的加载时间。