{ "info": { "author": "Geoff Davis", "author_email": "geoff@geoffdavis.net", "bugtrack_url": null, "classifiers": [ "Framework :: Plone", "Programming Language :: Python", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "Introduction\n============\n\nPageCacheManager is designed to speed up access to content views while\nat the same time making sure that stale content is not served up.\n\nInstallation\n============\n\nPageCacheManager is designed specifically for caching views of content\nobjects. Unlike RAMCacheManager, PageCacheManager caches both the\nhtml generated by a view as well as the HTTP headers.\n\nPageCacheManager builds upon Zope's standard cache manager machinery. \nAs with RAMCacheManager, you associate some page templates with the cache \nmanager and configure the properties. PageCacheManager requires an\nextra step: content to be cached must generate an ETag via a caching\npolicy. PageCacheManager looks for a CachingPolicyManager with id\ncaching_policy_manager. If it finds it, it then gets an ETag for the\ncurrent template + content object combination. This ETag is then used\nas the index into the cache. If you don't have an ETag generated for\nyour content, your pages will not be cached.\n\nIf you create an ETag that changes when the content is changed, then\nthe content served up by the cache will stay fresh. There will be a \ncache miss the first time the page is hit after the ETag changes, then\nsubsequent hits to the newly modified content view will reflect the new\nversion. If your content view is personalized, you will want your ETag\nto vary depending on the current user. A good ETag with these properties\nis as follows:\n\n ETag = id of currently authenticated user + delimiter + last modified time\n for content + delimiter + current time rounded to the nearest hour\n\nThe use of the id in the ETag means that every user's view of a content\nobject will have a different ETag, so everybody will get different\ncached objects. The use of the modification time means that every time\nthe content object changes, it will generate different ETags and hence\nwill result in new copies being pulled from the cache. The use of\nthe current time rounded to the nearest hour means that nothing will be\nserved up by the cache for more than an hour.\n\nAdded bonus: PageCacheManager handles conditional GETs. If the incoming\nrequest has an If-Modified-Since header with an ETag that matches the\ncontent object's current ETag, PageCacheManager will set a status 304\nheader (Not Modified) and will return no content.\n\n\nChangelog\n=========\n\n1.2 - 2008-01-16\n----------------\n\n- Repackage PageCacheManager is a python egg.\n [wichert]", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://svn.plone.org/svn/collective/Products.PageCacheManager", "keywords": "caching zope CMF", "license": "ZPL", "maintainer": null, "maintainer_email": null, "name": "Products.PageCacheManager", "package_url": "https://pypi.org/project/Products.PageCacheManager/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/Products.PageCacheManager/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://svn.plone.org/svn/collective/Products.PageCacheManager" }, "release_url": "https://pypi.org/project/Products.PageCacheManager/1.2/", "requires_dist": null, "requires_python": null, "summary": "Cache rendered pages including headers", "version": "1.2" }, "last_serial": 785067, "releases": { "1.2": [ { "comment_text": "", "digests": { "md5": "c2074a26e707418a000d7cdf768b108f", "sha256": "46e8385ed1296c37d714711465cba55bef4fc0c8614832743957a978dd9e611a" }, "downloads": -1, "filename": "Products.PageCacheManager-1.2-py2.4.egg", "has_sig": false, "md5_digest": "c2074a26e707418a000d7cdf768b108f", "packagetype": "bdist_egg", "python_version": "2.4", "requires_python": null, "size": 21446, "upload_time": "2008-04-16T09:02:49", "url": "https://files.pythonhosted.org/packages/ba/96/a1ee076d7b418ead652e0fd3bb9907c71e0d73b06094e41351b2e032f62e/Products.PageCacheManager-1.2-py2.4.egg" }, { "comment_text": "", "digests": { "md5": "10d4b25d4fd24ed4cdd3876c64605410", "sha256": "2f9e324e7ba7e2d59d44393a19a6bb018db6527667988e011da7a33136cc3b0b" }, "downloads": -1, "filename": "Products.PageCacheManager-1.2.tar.gz", "has_sig": false, "md5_digest": "10d4b25d4fd24ed4cdd3876c64605410", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12329, "upload_time": "2008-04-16T09:02:49", "url": "https://files.pythonhosted.org/packages/20/4e/1b01d77906b3fec45dc4d50b29c41fecf8959805cd95206617bf3129a536/Products.PageCacheManager-1.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c2074a26e707418a000d7cdf768b108f", "sha256": "46e8385ed1296c37d714711465cba55bef4fc0c8614832743957a978dd9e611a" }, "downloads": -1, "filename": "Products.PageCacheManager-1.2-py2.4.egg", "has_sig": false, "md5_digest": "c2074a26e707418a000d7cdf768b108f", "packagetype": "bdist_egg", "python_version": "2.4", "requires_python": null, "size": 21446, "upload_time": "2008-04-16T09:02:49", "url": "https://files.pythonhosted.org/packages/ba/96/a1ee076d7b418ead652e0fd3bb9907c71e0d73b06094e41351b2e032f62e/Products.PageCacheManager-1.2-py2.4.egg" }, { "comment_text": "", "digests": { "md5": "10d4b25d4fd24ed4cdd3876c64605410", "sha256": "2f9e324e7ba7e2d59d44393a19a6bb018db6527667988e011da7a33136cc3b0b" }, "downloads": -1, "filename": "Products.PageCacheManager-1.2.tar.gz", "has_sig": false, "md5_digest": "10d4b25d4fd24ed4cdd3876c64605410", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12329, "upload_time": "2008-04-16T09:02:49", "url": "https://files.pythonhosted.org/packages/20/4e/1b01d77906b3fec45dc4d50b29c41fecf8959805cd95206617bf3129a536/Products.PageCacheManager-1.2.tar.gz" } ] }