【问题标题】:jQuery.ajax - force cache invalidationjQuery.ajax - 强制缓存失效
【发布时间】:2009-07-20 14:00:20
【问题描述】:

我正在使用 jQuery.ajax (http://docs.jquery.com/Ajax/jQuery.ajax) 将不同网页的内容注入当前页面。将此视为“预览”窗口。 jQuery 有一个可选的缓存参数,它非常适合从缓存中加载内容,而不是再次请求同一页面。

我的问题是注入的内容可以从不同的位置进行编辑。发生这种情况时,我想使浏览器上的缓存无效,以便下次请求页面内容时,jQuery 将请求页面而不是使用缓存。我可以将缓存参数设置为 false,但不会缓存任何内容。我需要缓存内容,并且仅在源内容发生更改时才重新请求。

如何使当前缓存的网页无效?

【问题讨论】:

    标签: jquery ajax caching


    【解决方案1】:

    在我看来这是不可能的。假设您使用 AJAX 调用调用 update.php。现在每次你想使用缓存版本。但有时您需要未缓存的版本。您必须通知您的站点使用未缓存的版本。因此,您可能需要另一个并行脚本来检查 ajax 是否应该获取 update.php 的缓存或未缓存版本,这基本上违背了您的目的。

    我认为实现这一点的方法是使用电子标签:

    http://en.wikipedia.org/wiki/HTTP_ETag

    【讨论】:

    • 这是否意味着无法访问缓存项目列表并简单地从列表中删除一个项目?当内容被编辑时,我可以完全从缓存中删除页面......如果可能的话,而不是检查内容是否发生了变化。
    • 每次获取最新版本可以设置缓存:$.ajax 函数中的 false 参数。
    • 您可以为此目的使用电子标签-htaccesselite.com/creating-etag-headers-php-vt112.html
    猜你喜欢
    • 1970-01-01
    • 2021-06-24
    • 1970-01-01
    • 2018-12-28
    • 2015-04-29
    • 1970-01-01
    • 1970-01-01
    • 2015-07-21
    • 2017-09-08
    相关资源
    最近更新 更多