缓存呈现的页(包括页眉)
Products.PageCacheManager的Python项目详细描述
简介
PageCacheManager的设计目的是在 同时确保不提供过时的内容。
安装
pagecachemanager是专门为缓存内容视图而设计的 物体。与ramcachemanager不同,pagecachemanager缓存 由视图以及http头生成的html。
PageCacheManager基于Zope的标准缓存管理器机器。 与ramcachemanager一样,可以将一些页面模板与缓存相关联 管理和配置属性。PageCacheManager需要 额外步骤:要缓存的内容必须通过缓存生成ETag 政策。PageCacheManager查找ID为的cachingPolicyManager 缓存策略管理器。如果它找到了,它就会得到 当前模板+内容对象组合。然后使用这个ETag 作为缓存的索引。如果没有为生成ETag 你的内容,你的页面将不会被缓存。
如果创建的ETag在内容更改时更改,则 缓存提供的内容将保持新鲜。会有一个 缓存未命中在ETag更改后第一次命中页面时,然后 对新修改的内容视图的后续点击将反映新的 版本。如果您的内容视图是个性化的,您将需要您的etag 根据当前用户的不同而变化。具有这些特性的良好ETag 如下所示:
- 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,因此 将导致从缓存中提取新副本。使用 当前时间四舍五入到最近的小时意味着 一个多小时都在缓存里。
额外的好处:pagecachemanager处理条件获取。如果传入 请求有一个if modified since头,其etag与 content对象的当前etag,pagecachemanager将设置状态304 标题(未修改)并且将不返回任何内容。
更改日志
1.2-2008-01-16
- 重新打包pagecachemanager是一个python egg。 [威瑟特]