缓存呈现的页面,包括支持ETag的页眉

Products.TemplateCacheManager的Python项目详细描述


简介

TemplateCacheManager旨在加快对内容视图的访问 同时确保不提供过时的内容 起来。TemplateCacheManager派生自PageCacheManager。

TemplateCacheManager和PageCacheManager之间的区别

模板缓存管理器

  • is independent of the CacheSetup product.
  • returns also the ETag to the clients, supports therefore cascading and and multiple ETag caching. Client, Proxy (e.g. Squid) and TemplateCacheManager can therefore cache individual views of content including header information.
  • generates statistic reports

安装

TemplateCacheManager是专门为缓存内容视图而设计的 物体。与ramcachemanager不同,templatecachemanager缓存 由视图以及http头生成的html。

TemplateCacheManager基于Zope的标准缓存管理器机制。 与ramcachemanager一样,可以将一些页面模板与缓存相关联 管理和配置属性。TemplateCacheManager需要 额外步骤:要缓存的内容必须通过缓存生成ETag 政策。TemplateCacheManager查找ID为的cachingPolicyManager 缓存策略管理器。如果它找到了,它就会得到 当前模板+内容对象组合。然后使用这个ETag 作为缓存的索引。如果没有为生成ETag 你的内容,你的页面将不会被缓存。

如果创建的ETag在内容更改时更改,则 缓存提供的内容将保持新鲜。会有一个 缓存未命中在ETag更改后第一次命中页面时,然后 对新修改的内容视图的后续点击将反映新的 版本。如果您的内容视图是个性化的,您将需要您的etag 根据当前用户的不同而变化。具有这些特性的良好ETag 如下所示(示例目录中的s.install.txt):

ETag = id of currently authenticated user + delimiter + last modified time
for content + delimiter + current time rounded to the nearest hour

在etag中使用id意味着每个用户对内容的视图 对象将具有不同的ETag,因此每个人都将得到不同的ETag 缓存的对象。修改时间的使用意味着每次 content对象发生变化,它将生成不同的etag,因此 将导致从缓存中提取新副本。使用 当前时间四舍五入到最近的小时意味着 一个多小时都在缓存里。

附加奖金:

templatecachemanager处理由 cachingpolicymanager公司。如果传入请求具有if none匹配项 具有与内容对象的当前ETag匹配的ETag的头, TemplateCacheManager将设置状态304头(未修改)和 只返回匹配的ETag而不是内容。这个 如果使用支持etag的代理,则需要此功能 (例如squid),它可以缓存和处理内容的多个视图 由ETag和vary header索引。

有关ETag的信息

基本信息:

http://devel.squid-cache.org/etag/etag-header.html

Squid 2.x的多个ETag错误(包括补丁):

http://www.squid-cache.org/bugs/show_bug.cgi?id=2112http://www.squid-cache.org/bugs/attachment.cgi?id=1504

2008年7月4日星期五23:46:54+0200 添加了配置示例(s.examples/install.txt)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java有没有一种方法可以使用DesiredCapabilities在SeleniumWebDriver中获得非远程浏览器?   java逻辑和算术移位的输出   java如何以编程方式在Selenium中打开Safari>preferences?   java应用程序可以在javaws中更改自己的名称吗?   Java 7下的linux JAXB问题它说找不到RI 2.1.0   java解析来自Domino代理的JSON   java如何引用在不同类的main方法中声明的对象属性   java如何扩展apache FTPFile的功能?   java如何优化G1的暂停时间   java使用单个“更新”按钮将测试表的自动增量值插入分数表   针对UTF的regex Java电子邮件验证   java字节流问题   java 安卓将arraylist转换为自定义格式的一个字符串   java SQL语句到JTable   Java:带selfcontain计数器的while循环