joomla 2.5中保守缓存和渐进缓存有什么区别?

时间:2012-10-05 04:02:37

标签: php joomla joomla2.5 joomla3.0 joomla3.1

在全局配置中,joomla有2个缓存是保守和渐进的,两者有什么区别?

3 个答案:

答案 0 :(得分:30)

  

保守缓存是标准缓存类型。以下是它的工作原理:

     
      
  • 访问者访问您网站上的网页。

  •   
  • Joomla检查其缓存目录中是否存在该页面的未过期版本。

  •   
  • 如果缓存页面存在(并且它未过期),则Joomla会将其提供给访问者 - 否则,将创建页面的缓存版本,并且缓存版本将提供给访问者,并提供给其他人随后的访问者,只要它(由“它”表示页面)未过期。
  •   
     

上述情况很典型,是大多数开发人员的实施方式   缓存。

     

渐进式缓存的工作方式如下:

     
      
  • 访问者访问您网站上的网页。

  •   
  • Joomla会检查该访问者是否存在该页面的缓存版本,但尚未过期。

  •   
  • 如果该缓存页面存在,那么它将被提供给访问者,否则,Joomla将为该特定访问者创建缓存页面,然后将其提供给他。

  •   
  • 如果其他访问者(从未访问该页面)访问该页面,则Joomla将不会提供上一个访问者的缓存页面,而是会创建该页面的缓存版本   专门针对该用户,然后将其提供给他。

  •   
     

如您所见,渐进式缓存仅提供性能   如果同一访问者访问同一页面内的改进   页面缓存版本的生命周期。在大多数情况下,   渐进式缓存导致了巨大的性能损失   更糟糕的是禁用缓存,因为几乎每次访问都是如此   Joomla必须处理请求,创建缓存版本   页面,然后将页面提供给访问者(而不仅仅是   处理请求并在场景中提供页面   缓存被禁用)。哦,不要忘记所有的缓存文件   由Joomla生成 - 你只能想象你有多少这些文件   如果您有一个高流量新闻网站,将在您的缓存文件夹中   (有很多页面)。

     

现在您可能想知道,在哪种情况下是渐进式缓存   有用?好吧,想象一下你有一个视频网站(类似于   YouTube)的。您希望根据他的显示每个访客自定义页面   安装的位置和/或浏览器设置和/或插件。因此对于   访问者加载的每个页面都使用此信息   生成该页面的自定义版本并进行缓存。如果   访问者再次访问同一页面,然后Joomla不需要重做   生成自定义页面的工作。

     

当然,渐进式缓存有很多场景   真的很有用,但在我们看来,渐进式缓存应该只是   如果网站收到许多访问者和那些访问者,则考虑   主要是重复访客。在其他情况下使用它会导致   网站的表现受到重创。

摘自here

答案 1 :(得分:11)

每位访问者的唯一缓存

  • 保守缓存向您网站的所有访问者显示相同的缓存内容。

  • 渐进式缓存会为每个用户唯一缓存内容。

来自@ {Tornado提供的link评论

答案 2 :(得分:1)

渐进式缓存就像保守缓存一样,不同之处在于缓冲区会逐步更新。

如果查看JApplicationCMS中的渲染功能(设置了渐进式缓存),您会发现它不适用于登录用户。 https://github.com/joomla/joomla-cms/blob/staging/libraries/cms/application/cms.php

if ($this->isSite() && $this->get('caching') && $this->get('caching', 2) == 2 && !JFactory::getUser()->get('id'))
    {
        $caching = true;
    }

此外,如果您跨浏览器或ips转储同一页面的缓存ID,您将获得相同的缓存ID。

渐进式缓存的典型工作发生在JCache的getWorkarounds和setWorkarounds中。但要注意,cbuffers有时会变得笨重,造成问题。