是否减少HTTP请求?

Ind*_*ial 21 javascript performance http minify

一个理论问题:
我们都知道缩小和组合javascript文件以减少HTTP请求以加速网站的专业人士.但是当使用流行的javascript库(例如jQuery)时,假设这些库已经从另一个页面下载到客户端计算机并不是太愚蠢.

那么应该更喜欢什么呢? 业内的大家伙如何处理它?

A)将每个脚本组合并缩小为一个大型脚本并从我自己的CDN中提供.

B)将所有"自编"脚本合并到一个文件中,并尽可能利用可用的CDN库.

谢谢!

gbl*_*zex 13

  • "将每个脚本组合并缩小为一个巨大的脚本并从我自己的CDN中提供它"

    如果你有CDN,我们在说什么?:)你的意思是服务器,对吗?

  • "业内大公司如何处理它?"

    大家伙总是使用他们自己的服务器.

  • "......假设这些已经从另一个页面下载到客户端计算机上并不是太愚蠢."

    不幸的是.事实:

    • 40-60%的用户拥有空的缓存体验
    • 浏览器的缓存限制很小
    • 正在使用不同版本的库,只有匹配时才会发生缓存
    • 来自新域的资源会创建DNS查找,这很慢
    • +你需要管理依赖项

  • 实际报价是"_Yahoo!的40-60%的用户_拥有空的缓存体验".对于任何不是雅虎的网站,这些数字可能大不相同.值得注意的是,yahoo.com是一个非常常见的浏览器主页.这导致了非常不同的使用情况.这将我们带到最重要的一点:跟踪您自己的统计数据.在您自己测量之前,您不会知道什么最适合*your*网站. (5认同)
  • 空缓存链接为+1,DNS查找为+1 (4认同)
  • "值得注意的是,yahoo.com是一个非常常见的浏览器主页" - LoL.这就是为什么同一个用户每天两次访问雅虎主页的几率实际上高于用户拥有完全相同库的完全相同版本的机会来自其缓存中完全相同的CDN(并且自那以后不被其他内容替换)然后). (4认同)

The*_*ppo 6

我认为这取决于你的网站:

  • 如果您的网站主要包含相同类型的页面,需要相同的脚本,我会去A)
  • 如果你有很多脚本与你站点的每个子站点不同,我会选择B).在一个脚本中将最常用的脚本组合在一起.如果您有大型脚本未在每个页面上使用,请为其创建单独的脚本.

真正知道该怎么做的最好方法是测试哪种技术组合可以为您节省最多的流量/连接.

PS:我个人不喜欢让其他人为我的网页提供文件的想法,因为如果CDN失败会发生什么,但你的服务器还活着?如果这对您来说不是问题,请尝试从可靠的CDN为您使用的所有库提供服务.

  • +1可能存在CDN问题.我也时不时地看到这些问题; 更糟糕的是,大多数访问者会认为您的网站是垃圾,因为您的CSS/JS无法加载. (5认同)
  • +1用于测试并使用真实指标进行选择 (2认同)