缓存呈现的页(包括页眉)

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。 [威瑟特]

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

推荐PyPI第三方库


热门话题
并行处理java。util。同时发生的叉子在游泳池里。常见的并行性准则,用于选择正确的并行度大小   java如何将空白字符追加到指定长度?   安卓应用程序中出现错误,SSLHandshakeException,找不到证书路径的信任锚点   java如何使用JUnit Mockito验证检查方法是否未被调用   java如何使用不同的@RequestMapping解析多个控制器中的静态页面   Selenium中的javascript需要验证搜索结果   访问数据库SQLiteopenHelper方法时java应用程序崩溃(nullpointerexception)   在二叉树中验证最小堆时出现java空指针异常   Java 7的SSL连接失败   java用RestEasyWebTarget替换ProxyFactory不起作用   在Java应用程序中单击“否”按钮后,数组程序冻结(无响应)   数组中的前缀Java初学者前进和   Java HTML解析器,包括脚本标记和LineNumberReader   在java中为长类型数字加前导零   正则表达式无法映射正则表达式java。lang.IllegalArgumentException:模式段中捕获组的数量