我正在向 PHP 应用程序发送 AJAX GET 请求,并希望缓存请求返回以备后用。
因为我使用的是 GET 这应该是可能的,因为不同的请求请求不同的 URL(例如 getHTML.php?page=2 和 getHTML.php?page=5)。
我需要在 PHP 应用程序中声明哪些 header 才能使客户端浏览器以正确的方式缓存请求 URL 内容?我是否需要在处理 AJAX 请求的 Javascript 中声明任何内容(我正在使用具有缓存参数的 jQuery 的 $.ajax 函数)?
我将如何处理更改内容的编辑,例如getHTML.php?page=2 以便客户端不会回退到缓存版本? 向 GET 请求添加另一个参数,例如getHTML.php?page=2&version=2 是不可能的,因为请求的 URL 的链接是自动创建的,没有任何检查(这最好是我想要的方式)。
当我尝试 AJAX 请求缓存的请求 URL 时,浏览器将如何 react ? AJAX 请求会立即返回成功吗?
谢谢
威廉
最佳答案
在服务器上添加以下 header :
header("Cache-Control: private, max-age=$seconds");
header("Expires: ".gmdate('r', time()+$seconds));
$seconds
的含义很明显。
我们在这里设置了一个 Expires
header ,尽管如果之前设置了带有 max-age
参数的 Cache-Control
header ,它应该被忽略,因为there are clients that do not follow the standard .
此外,检查您的服务器是否不发出一些其他反缓存 header ,如 Pragma
。如果是这样,也添加 Pragma: cache
header 。
关于php - 缓存 AJAX 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/650440/