【问题标题】:Django caching an entire rendered HTML page for all website visitorsDjango 为所有网站访问者缓存整个呈现的 HTML 页面
【发布时间】:2018-12-15 19:53:15
【问题描述】:

我有一个特定的视图,它需要一分钟才能为所有用户加载。视图的内容并不特定于查看它生成的渲染 HTML 的用户(这是一个很大的计划),但每次有人访问计划页面时都不可能(而且效率非常低)运行该昂贵的操作。

所以我想要做的是将整个页面的渲染内容缓存在我的数据库中,甚至可能是 S3 中的一个文件。我看到的所有 Django 和缓存文档通常都在谈论将每个唯一访问者缓存到您要缓存的应用程序部分,但不是针对整个站点。我想始终向所有人呈现相同的缓存视图。在这种情况下,我什至不确定缓存是否是正确的词。

它不是静态页面的原因是因为内容确实每天会更改几次(大约),但我可以将 post_save 信号连接到时间表以便刷新缓存和完整呈现的 HTML 内容.

这是我第一次深入研究缓存,所以我的理解可能存在一些基本缺陷。非常感谢任何指导!

【问题讨论】:

    标签: python django caching memcached


    【解决方案1】:

    相反,几乎所有 Django 的文档都在讨论为所有用户进行缓存,尤其是 per-view cache,它完全可以满足您的需求。每个唯一用户的缓存要困难得多。

    【讨论】:

    • 嗯,这很有趣!但是大牛,我仍然没有得到的是这些方法,它们需要一个人首先触发视图功能对吗?所以有人会让用户在每次缓存过期时都遭受很长的加载时间,但随后响应将被缓存并迅速可供所有人使用。这个假设正确吗?非常感谢。
    • 为了避免第一个用户遇到缓慢的问题,您可以编写一个脚本以不时地(或特别是在您的内容更新后)触发 HTTP 请求,以便页面进入缓存。定期缓存预热的东西。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-03
    • 2021-05-19
    相关资源
    最近更新 更多