我使用以下来缓存我的ASP.NET页面。
Response.Cache.SetExpires(DateTime.Now.AddSeconds(60));
问题是当我从其他页面向此页面发送AJAX(XmlHttpRequest)请求时,该响应不会缓存在除IE之外的任何浏览器上。 (在IE上,即使我没有指定它也会被缓存)。如何进行缓存?任何客户端解决方案?提前谢谢......
答案 0 :(得分:1)
参考链接:
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();