繁体   English   中英

Django缓存:缓存预热后重新加载浏览器缓存

[英]Django caching : reload browser cache when cache is warmed up

我将Angular用作前端,将Django用作后端,并配置了memcache。

我面临的问题是AJAX调用angular make。
一旦我使用

cache.flush_all()

并且我从浏览器中输入了相同的网址,第一个获取请求得到确认,并发送了新数据。 但是然后我的应用程序涉及发送多个ajax请求以更改视图。 这些视图始终由浏览器缓存传递(直到我明确清除缓存或按Ctrl + R组合键)。

我不想完全禁用缓存,我只希望浏览器在刷新较旧版本时获取更新的缓存。

我试图使用cache_control装饰器,但没有成功。

@cache_control(must_revalidate=True)

这是我的角度代码:

$http({method: method, url:url, data:postData }).
          success(...

另请注意,我无法使用max_age参数,因为它也会丢弃新的缓存,并且请求将一直处理。 取而代之的是,我需要浏览器来获取刷新后已经预热的缓存。

我正在使用manage.py runserver进行测试。 产品环境是gunicorn + nginx。 如果需要任何其他信息,请发表评论。

建议使用never_cache装饰器。 它通过设置响应头来禁用浏览器中的缓存,如中所述:

def add_never_cache_headers(response):
    """
    Adds headers to a response to indicate that a page should never be cached.
    """
    patch_response_headers(response, cache_timeout=-1)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM