memcache php缓存js css和图像

memcache php缓存js css和图像,php,javascript,css,memcached,Php,Javascript,Css,Memcached,如果可能的话,我们需要一些建议/反馈 我正在从事一个大型项目,开发团队要求我们合并所有的JS/CSS,并将其作为一个文件与memcache一起缓存,以加快速度 我担心的是,这不是我习惯的工作方式,我只想加载每页所需的JS和CSS,我认为这是一个明显的原因 我也一直在寻找一些其他高流量的网站,似乎没有其他人这样做 有谁能告诉我这种方法的利弊吗 提前谢谢 Richard“我一直在看一些其他高流量网站,似乎没有其他人在做这件事。” 真的吗?这让我很惊讶。。。这是减少页面加载时间的第一步。请参见此处:。

如果可能的话,我们需要一些建议/反馈

我正在从事一个大型项目,开发团队要求我们合并所有的JS/CSS,并将其作为一个文件与memcache一起缓存,以加快速度

我担心的是,这不是我习惯的工作方式,我只想加载每页所需的JS和CSS,我认为这是一个明显的原因

我也一直在寻找一些其他高流量的网站,似乎没有其他人这样做

有谁能告诉我这种方法的利弊吗

提前谢谢

Richard

“我一直在看一些其他高流量网站,似乎没有其他人在做这件事。”

真的吗?这让我很惊讶。。。这是减少页面加载时间的第一步。请参见此处:。如果您想测试对加载时最佳实践的遵从性,您可能还想尝试他们的性能测试工具YSlow:

这就是为什么这被认为是最佳实践的原因:浏览器限制为每个特定服务器大约8个同时连接,限制为2个(对于不一致的浏览器来说更多)。因此,如果您为一个给定页面生成多个文件,那么它们将以某种顺序加载,因为您的浏览器将对服务器进行十五次往返,每次两次

让我们看看结果如何。假设每个10k有15个文件,或者你可以将它们合并成一个150k的文件。假设服务器的延迟为65毫秒,下载速率仅为25k/秒。让我们来算一下。。。下面是方程式:

$page_load_time = ( ($simultaneous_connections * $load_time_per_file) 
                       + $latency_per_request ) 
                  * ($number_of_files/$request_cycles)
其中:

$request_cycles = max(1, ($number_of_files/$simultaneous_connections))
因此,每个10k处有15个文件:

((2 * .4 seconds) + .065 seconds) * 7.5 =  6.4875 seconds
或者使用单个150k文件:

((1 * 6 seconds) + 0.065 seconds) * 1 = 6.065 seconds
虽然差别不大,但用户的等待时间仍有将近半秒

现在-当他们使用3g连接时会发生什么?还是有点wi-fi问题?让我们尝试增加带宽(100k/秒)和延迟(250ms):

哇!现在,所有这些单独的小文件几乎使页面加载时间增加了一倍

再加上一大堆其他的文件,你奇特的TypeKit负载、广告服务器负载、Facebook插件等等,这些东西就变得更加重要了。

“我一直在看一些其他高流量的网站,似乎没有其他人在做这件事。”

真的吗?这让我很惊讶。。。这是减少页面加载时间的第一步。请参见此处:。如果您想测试对加载时最佳实践的遵从性,您可能还想尝试他们的性能测试工具YSlow:

这就是为什么这被认为是最佳实践的原因:浏览器限制为每个特定服务器大约8个同时连接,限制为2个(对于不一致的浏览器来说更多)。因此,如果您为一个给定页面生成多个文件,那么它们将以某种顺序加载,因为您的浏览器将对服务器进行十五次往返,每次两次

让我们看看结果如何。假设每个10k有15个文件,或者你可以将它们合并成一个150k的文件。假设服务器的延迟为65毫秒,下载速率仅为25k/秒。让我们来算一下。。。下面是方程式:

$page_load_time = ( ($simultaneous_connections * $load_time_per_file) 
                       + $latency_per_request ) 
                  * ($number_of_files/$request_cycles)
其中:

$request_cycles = max(1, ($number_of_files/$simultaneous_connections))
因此,每个10k处有15个文件:

((2 * .4 seconds) + .065 seconds) * 7.5 =  6.4875 seconds
或者使用单个150k文件:

((1 * 6 seconds) + 0.065 seconds) * 1 = 6.065 seconds
虽然差别不大,但用户的等待时间仍有将近半秒

现在-当他们使用3g连接时会发生什么?还是有点wi-fi问题?让我们尝试增加带宽(100k/秒)和延迟(250ms):

哇!现在,所有这些单独的小文件几乎使页面加载时间增加了一倍


再加上一大堆其他的文件,你奇特的TypeKit加载、广告服务器加载、Facebook插件等等,这些东西就变得更加重要了。

也许你不想把它变成一个真正的问题,这里似乎有两个问题——我应该用memcached缓存js/css吗?我应该把我所有的js/css合并到一个文件中吗。我建议你将这两个问题分开发布,因为它们实际上是不相关的。我想问题是,对于缓存一个巨大的css和js文件,以及针对实际上只使用每页所需的内容并让浏览器缓存它,有什么利弊,它的优点和缺点是什么?@user989952如果你将所有内容合并到一个文件中,并让浏览器缓存这些内容,它会稍微加快速度,因为只有一个
GET/whatever.css。。。如果修改自:
每页加载,但我怀疑它在实际增益方面可以忽略不计。即使这样,我也看不出memcache对一个静态文件有多大帮助,而且每次新客户端到来/缓存副本过期时,您都必须再次传输整个文件。总的来说,我是站在你这一边的,他们的建议对我来说听起来是个愚蠢的想法。@DaveRandom稍微加快一点速度好吗?服务器性能还是页面加载时间?虽然通过咀嚼一个文件可能不会显著提高服务器性能(尽管这会有所帮助),但页面加载时间可以显著提高,具体取决于具体情况。页面加载时间会影响用户,因此它是确保良好用户体验的关键因素。请看我的数学分类答案。也许你不想把它变成一个真正的问题。这里似乎有两个问题-我应该使用memcached缓存js/css,还是应该将我所有的js/css合并到一个文件中。我建议你将这两个问题分开发布,因为它们实际上是不相关的。我想问题是,对于缓存一个巨大的css和js文件,以及针对实际上只使用每页所需的内容并让浏览器缓存它,有什么利弊,它的优点和缺点是什么?@user989952如果你将所有内容合并到一个文件中,并让浏览器缓存这些内容,它会稍微加快速度,因为只有一个
GET/whatever.css。。。如果修改自:
每页加载,但实际增益可忽略不计,