缓存AJAX请求

时间:2010-12-08 06:53:41

标签: javascript asp.net ajax caching xmlhttprequest

我使用以下来缓存我的ASP.NET页面。

Response.Cache.SetExpires(DateTime.Now.AddSeconds(60));

问题是当我从其他页面向此页面发送AJAX(XmlHttpRequest)请求时,该响应不会缓存在除IE之外的任何浏览器上。 (在IE上,即使我没有指定它也会被缓存)。如何进行缓存?任何客户端解决方案?提前谢谢......

3 个答案:

答案 0 :(得分:1)

参考链接:

Cache AJAX requests

http://developer.yahoo.net/blog/archives/2007/05/high_performanc_2.html
http://developer.yahoo.net/blog/archives/2007/07/high_performanc_11.html

到期缓存:

  header("Cache-Control: private, max-age=$seconds");
  header("Expires: ".gmdate('r', time()+$seconds));

我会帮助你。

答案 1 :(得分:0)

这可能无法回答你的问题..但我认为你应该为ajax请求做服务器端缓存而不是客户端缓存..如果你的烦恼是重复的ajax请求的性能..客户端缓存有很多基于用户和浏览器类型的参数,这不是依赖于缓存的理想位置。

理想情况下,客户端缓存是供用户设置,以提高其浏览性能,而不受网站/网络应用程序的影响。

答案 2 :(得分:-1)

您可以在网址末尾添加动态查询字符串,以便每次都从ajax请求中获取唯一数据。

所以你的ajax请求的网址可能是这样的:

var myUrl = "http://mysite.com/hello.aspx?timestamp=" + new Date().getTime();