缓存呈现的页面,包括支持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@AfterEach注释在Spring测试中被忽略   散列如何使用bouncy castle在Java中创建SHA512摘要字符串?   java无法使用Okhttp获取响应cookie   100个数的java阶乘   多线程如何在Java中实现对象计数器   java我的精灵不显示背景   java如何在com上应用PanelSlideListener。索特里。滑动面板。SlidengUpPanelLayout SlideUp库   java如何在JDBC中使用WHERE EXISTS函数   java Swing:标签前景中的白色被绘制为黑色   获取java的时间戳。util。另一个java的日期对象为(10/7/14)。util。日期对象(2014年10月7日星期二11:21:00)   java如何在Spring/OpenJPA 1中重新创建用于更新行锁定的选择   java在保存另一个maven项目中的类时,有没有办法让eclipse识别对该类的更改?   java如何解决Spring中的Servlet上下文错误?   java在mongodb中删除记录   显示的java片段与当前片段重叠,而不是替换它