【问题标题】:Disable cache on php and html with AJAX使用 AJAX 禁用 php 和 html 上的缓存
【发布时间】:2014-11-05 17:44:40
【问题描述】:

我在我的网站上使用 AJAX,并且我的网站在 AJAX 准备好文档后会加载一些部分负载,并且这些部分是动态的。

示例一部分:您好#USERNAME#,每个 ID 都不同,当我登录到第一个 ID 时显示我的用户名,但当登录到第二个 ID 时,此名称不会更改并显示第一个 ID 用户名。

我通过上面的代码禁用了所有 PHP 页面中的缓存:

<?php 
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
?>

但是缓存没有被禁用。

【问题讨论】:

  • 专业提示:为了避免缓存 AJAX 请求,请在您请求的 URL 末尾添加一个伪时间戳。
  • Jay Blanchard 上面所说的一个例子是请求这样的页面:'yoursite.com/ajax_script.php?t=1152014105753' 其中数字字符串是当前日期/时间到秒。这将跳过缓存并将其视为浏览器的新文件。

标签: php html caching


【解决方案1】:

我相信这个问题有点重复。但是,如果您想确保在 ajax 调用上不会发生缓存,您可以将时间戳附加到您正在访问的 URL 的末尾。

JavaScript AJAX 准备中的示例:

var time_stamp = new Date().getTime();
var myurl = "url_here.php?timestamp=" + time_stamp;
jQuery.get(myurl, /* more parameters */);
/* other relevant code */

以下是来自 Google 的其他一些来源:

要考虑的另一件事是它可能不是缓存问题。您是否正确清除了任何会话/cookie? (如果你正在使用它们)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-26
    • 1970-01-01
    • 2016-12-07
    • 2011-05-20
    相关资源
    最近更新 更多