javascript文件的数量可以使项目更慢或任何效果?

时间:2012-11-09 11:15:24

标签: javascript html client-side

我正在使用HTML和JavaScript开展项目。我在我的项目中使用了许多JavaScript文件。我想知道Web项目中的JavaScript文件数量是否会产生任何副作用? (在效率或速度方面)。

4 个答案:

答案 0 :(得分:4)

  

我想知道在Web项目中是否存在任何JavaScript文件的影响?在效率或速度方面。

如果您的意思是,将您的所有JavaScript嵌入HTML中的内嵌script标记中是否存在速度成本,那么可能也许不是;这取决于有多少JavaScript。

这是一个权衡:

  • 如果您将所有JavaScript放在HTML文件中,这意味着您必须在每个HTML文件中复制它,使每个文件都更大。如果它是很多脚本,那么每个HTML文件都会更重,这意味着当您更改内容(而不是代码)时,会强制用户重新下载所有这些内容代码

  • 如果您将JavaScript放在单独的文件中,则在加载页面时会有额外的HTTP请求,但前提是JavaScript文件尚未存在于缓存中 - 并且所有HTML文件都是如此小。

因此,在大多数情况下,如果您有大量代码,最好使用单独的JavaScript文件并正确设置缓存标头,以便浏览器不需要每次都发送单独的HTTP请求。例如,配置服务器以告知浏览器JavaScript文件长时间处于良好状态,因此它甚至不会执行If-Modified-Since HTTP请求。然后,如果您需要更新JavaScript,请更改文件名并引用HTML中的新文件。

这只是一种缓存控制的方法,这是一个重要且非繁琐的主题。但是你明白了。将它分开可以为您提供类似的选项,初始成本相当低(将一个额外的HTTP请求加载到缓存中)。但是对于相当少量的代码来说可能会有点过分。

答案 1 :(得分:3)

在执行方面,我认为根据您拥有的JavaScript文件数量,应该没有太大差异。但是,大量JavaScript文件在加载页面时需要大量请求,这肯定会影响加载页面所需的时间。

至少有两种方法可以解决这个问题,使用哪种方法取决于手头的情况。

将所有文件捆绑为一个:

对服务器的每个请求都会增加加载页面所需的时间。因此,将JavaScript文件捆绑并缩小为一个包含所有脚本的单个文件通常被认为是一种很好的做法,因此只需要一个请求即可加载所有JavaScript。

但是,在某些情况下,如果你有非常多的JavaScript,那么单个文件会变得非常大,即使你只加载一个文件,加载该文件也可能需要一些时间,从而减慢了页面加载速度。在这种情况下,可能值得考虑选项二。

根据需要加载模块:

在其他情况下,例如,如果您的站点有很多JavaScript,但每个页面上只使用了所有代码的几个模块,那么它可能会为您提供更好的使用条件加载的性能。在这种情况下,您将代码保存在单独的模块中,并将每个模块放在单独的文件中。然后,您只能在每个页面上加载所需的模块。

答案 2 :(得分:0)

这完全取决于您将包含的javascript文件。当然,当包含javascript文件时,它必须由浏览器加载。如何征税取决于文件的大小。一般来说,通过组合单个文件中的所有代码来最小化脚本文件的单独请求的数量是有利的

答案 3 :(得分:0)

大量的JavaScript文件可能会导致页面加载速度变慢,但如果所有内容都正确缓存,则不应该出现任何问题。从渲染中请求大量文件的浏览器在渲染之前会慢一点,但我们说的是0.001秒。

在Crowders帖子中,如果你正确缓存,那么你必须更改你的文件名并引用它,但是如果你在webproject中实现了一个很好的缓存机制,那么用你的查询字符串来引用你的JavaScript会更容易:

scripts/foo.js?version=1

我们使用软件版本号,因此每个新版本我们都会更改查询字符串,所有客户端都会获得新的脚本文件。

每当你发布它时,最好捆绑你的所有JavaScript,但它对小项目没有用。