我的页面在数据库访问时使用时间过长,模板处理速度慢,因此我不得不使用django-cacheops
使用Redis
进行缓存。现在因为我有使用csrf
标记的POST表单,所以这些值也将被缓存。我一直在考虑实施以下解决方案,但我不确定它是否是明智的。
这种方法安全且明智吗?如果是这样我怎么知道使用Javascript / jQuery和cookie我是一个登录用户(即如何区分客户端的用户和访问者,如服务器端的request.user.is_authenticated()
)?
答案 0 :(得分:0)
作为第一种方法,您可以尝试仅缓存最重要的渲染页面部分(确保重型数据库查询在此之前保持惰性)。您的表单应该不在缓存部分中。
第二种方法是两阶段缓存:基本思想是你不首先根据cookie和/或用户渲染部件,缓存结果然后渲染先前排除的部分。这样,大多数页面和大多数加载都将位于缓存之后,您只会为每个请求呈现小部分。
有一个django-phased库,它实现了这种方法。但是不确定它是否适用于你以及它与缓存的效果如何。