Est*_*ber 10 html query-string
一个众所周知的问题是IE缓存了太多的html,即使给每个页面都有一个Cache-Control: no-cache或Last-Modified标题.
在使用查询字符串获取动态信息时,这种行为确实令人不安,因为IE认为它是同一页面(即:)http://example.com/?id=10并提供缓存版本.
我已经解决了它在查询字符串中添加随机数或时间字符串(正如其他人所做的那样)http://example.com/?id=10&t=2009-08-06_13:12:56,我只是忽略了服务器端.
有更好的选择吗?是否有另一种更清洁的方式来实现这一目标?我知道它POST没有被缓存,但GET在这里使用它是语义上正确的.
Sim*_*Fox 11
假设您使用的是jQuery,而不是使用$ .get或$ .getJson,请使用更通用的$ .ajax并将缓存值显式设置为false.以下是一个例子:
$.ajax({
url: "/Controller/Action",
cache: false,
type: "GET",
dataType: "json",
success: function(data, textStatus) {
alert("success");
}
});
Run Code Online (Sandbox Code Playgroud)
需要更多的代码(虽然不多),而不是使用.getJson或.get但是会干净地解决问题,而不会附加随机数.
您还可以使用当前的Unix时间(以毫秒为单位)来避免一秒钟内出现多个请求的问题(在一毫秒内发出多个请求的可能性要小得多)
var url = "http://whatever.com/stuff?key=value&ie=" + (new Date()).getTime();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19381 次 |
| 最近记录: |