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

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第三方库


热门话题
安卓工作室组织。json。JSONException:类型为java。无法将lang.String转换为JSONObject   java将数据从Jenkins参数化构建传递到testng。运行时的xml   java关注使用所有者框架异步打开JDialog   Android java:broadcastReceiver上的蓝牙连接事件未触发   在java中同时处理写入和读取的文件io   javascript如何替换目标数组字符串并将其更改为用户输入字符串   如何终止或停止java小程序中的其他线程   如何通过SeleniumJava连接到putty以执行一组命令并在putty窗口中验证输出   java为什么空列表上的循环会挂起?   java当我单击run时,什么也没有发生   swing Java多监视器问题   proguard java模块版本不匹配   java在facebook sdk 4.0上获取可标记好友+   java Android Fragmens和滑动示例   java导入。VS代码中的jar库   存储在SQL表中的java下载/显示文件   java项目Euler(第14页):递归问题   java如何在springboot中跳过失败的bean以避免报告失败:771>>应用程序启动失败