Javascript 是否减少HTTP请求?
一个理论问题:Javascript 是否减少HTTP请求?,javascript,http,performance,minify,Javascript,Http,Performance,Minify,一个理论问题: 我们都知道专业的缩小和组合javascript文件,以减少HTTP请求来加速网站。但是,当使用流行的javascript库(例如jQuery)时,假设这些库已经从另一个页面下载到客户端计算机上并不愚蠢 那么,我们应该选择什么呢业界的大人物是如何处理的? A)将每个脚本合并并缩小为一个大脚本,然后从我自己的CDN提供服务。 B)将所有“自编”脚本合并到一个文件中,并尽可能利用可用的库CDN。 谢谢 我认为这取决于你的网站: 如果你的站点主要由相同类型的页面组成,而这些页面需要相同
我们都知道专业的缩小和组合javascript文件,以减少HTTP请求来加速网站。但是,当使用流行的javascript库(例如jQuery)时,假设这些库已经从另一个页面下载到客户端计算机上并不愚蠢 那么,我们应该选择什么呢业界的大人物是如何处理的? A)将每个脚本合并并缩小为一个大脚本,然后从我自己的CDN提供服务。 B)将所有“自编”脚本合并到一个文件中,并尽可能利用可用的库CDN。
谢谢 我认为这取决于你的网站:
- 如果你的站点主要由相同类型的页面组成,而这些页面需要相同的脚本,我会选择A)
- 如果你有很多不同于你站点的每个子站点的脚本,我会选择B)。将最常用的脚本组合在一个脚本中。如果您的大型脚本不是每个页面都使用,请为其制作单独的脚本
注:我个人不喜欢让其他人为我的网页提供文件,因为如果CDN失败了,但你的服务器还活着,会发生什么?如果这对您来说不是问题,请尝试从可靠的CDN为您使用的所有库提供服务器。我认为这归结为以下几点:
回答您的问题:减少HTTP请求,但对JS的文件大小进行您自己的评估
(非常极端)你不想要一个10MB的JS文件,否则你的站点将需要很长时间才能加载。由于HTTP开销,您也不需要1000个10KB的文件。同样,用这一点来说明您希望在文件的大小和数量之间取得平衡,正如我前面所说的,将它们打包成所需的性能和所需的性能。我认为最好的方法是使用一个缩小的“application.js”文件(包含所有特定于应用程序的javascript)然后使用Google AJAX库API(found)等服务加载jQuery、Prototype等。特别是关于业界巨头如何处理客户端脚本的问题,您可以随时查看。stackoverflow.com依靠谷歌版本的jquery库似乎还不错。其他人肯定不会……
- “将每个脚本合并并缩小为一个大脚本,然后从我自己的CDN提供它。” 如果您有CDN,我们在谈论什么?:)你是说服务器,对吗
- “这个行业的大人物是如何处理的?” 大公司总是使用自己的服务器
- “…假设这些文件已经从另一个页面下载到客户端计算机上并不愚蠢。”
不幸的是。事实:
- 40-60%的用户拥有
- 浏览器“
- 库的不同版本正在使用中,只有当它们匹配时才会发生缓存
- 来自新域的资源创建了一个DNS查找,速度很慢
- +您需要管理依赖关系
*我当然没有一个庞大的生产站点,但这些东西确实有助于节省带宽成本。没有什么特别的原因可以说明一个脚本比拆分脚本更快。这是因为浏览器的并发下载是有限的,但不是一个 我认为应该首先处理同步UI脚本,然后处理“用户活动响应”脚本(如验证等)
在其他条件相同的情况下,选项B看起来是最好的 +1用于测试,并使用实际指标为潜在CDN问题选择+1。我也时不时地看到这些问题;更糟糕的是,大多数访问者会认为你的网站是垃圾,因为你的CSS/JS无法加载