php如何缓存ajax http请求?

我正在将AJAX GET请求发送到PHP应用程序,并希望缓存请求返回以供以后使用。

由于我使用的是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参数的Cache-Control header ,因为there are clients that do not follow the standard,也应该忽略它,但我们还是在这里设置了max-age header 。

另外,请检查您的服务器是否没有发出其他一些反缓存 header ,例如Pragma。如果是这样,也添加Pragma: cache header 。

以上是 php如何缓存ajax http请求? 的全部内容, 来源链接: www.h5w3.com/122650.html

回到顶部