将每个页面的 javascript 合并到一个文件中,还是提供特定于页面的文件?



假设我有一个网站,有26个不同的页面,从a.html到Z.html,每个页面都使用不同的JavaScript文件,从a.js到Z.js。我有两个选项,我想知道是否有人对哪一个更好有任何建议。

选项1。在构建步骤中,将所有26个JS文件连接到一个文件all.JS中,并在每个页面上包含all.JS。

优点:-一旦缓存了all.js,它就会被缓存到每个页面,而不仅仅是当前页面。这不仅减少了对当前页面的后续视图的HTTP请求,还减少了对网站上每个页面的视图(甚至是用户还没有访问过的页面)的HTTP请求。

缺点:-all.js平均会比它需要的大25倍,因为它将包含许多从未在任何给定页面上执行的JavaScript。-通过Z.js对A.js的任何更改都意味着所有.js都将发生更改,这意味着需要替换缓存的版本。

选项2。在每个页面上,只加载所需的文件。因此,在A.html上,只包括A.js,在B.html上,仅包括B.js等。

优点:-只加载所需的js文件,这意味着该文件将尽可能小。-对A.js的更改只会在用户访问A.html.B.html-Z.html时影响用户。

缺点:-用户必须分别加载每个js文件。因此,当他们访问A.html时,他们只会缓存A.js。然后,当他们访问B.html时,他们需要下载B.js,等等。

每种方法都有优缺点,所以我正在寻求帮助,找出哪种方法更优。

这两种方法对我来说似乎都可以,但我可能会选择选项2,因为一开始对性能的影响较小,而且只加载您需要的内容。这就像是在一次性支付0%利息的债务或几个月的还款之间做出选择。很明显,我会按月付款,因为我想尽可能多地保持流动性(此外,我想让通货膨胀对我有利)。在这种情况下,如果用户没有加载某些页面,那么你最终就没有偿还"债务"。但我也不会反对将所有内容捆绑在一个文件中,因为性能的影响即使更大,也应该可以忽略不计,除非你正在构建一个怪物应用程序。

无论你采取什么方法,都要考虑捆绑和缩小你的文件,不仅是JavaScript,还有CSS和图像(尽可能使用精灵)

多年来公认的最佳实践是将所有资产构建到最小数量的文件中,并最小化/压缩生成的文件。

您应该使用您的JavaScript、CSS和图像,以精灵的形式来实现这一点。

最大限度地减少HTTP请求的好处远远超过了在每个页面中额外包含几KB的JavaScript或CSS或不必要的图像数据。

最新更新