Mit*_*ran 4 ajax jquery internet-explorer caching internet-explorer-7
请参阅下面的jQuery代码,它用于分页搜索结果
paginate: function() {
$("#wishlistPage .results").html("<div id='snakeSpinner'><img src='"+BASE_URL+"images/snake.gif' title='Loading' alt='...'/></div>");
var url = BASE_URL+"wishlist/wishlist_paginated/";
$.ajax({
type: "GET",
url: url,
data: {
sort_by:$('#componentSortOrder input:hidden').val(),
offset:My.WishList.offset,
per_page: 10,
timestamp: new Date().getTime()
},
success: function(transport){
$("#wishlistPage .results").html(transport);
}
});
},
Run Code Online (Sandbox Code Playgroud)
我的问题不在于分页,问题是当我需要调用这个相同的函数时,某些东西发生在页面的其他部分,删除了一些搜索结果,它在IE7中带来了旧的结果,其他浏览器工作正常.所以添加了时间戳:new Date().getTime()部分.这解决了IE问题.
我想知道为什么在jQuery中会发生这种情况?我是否需要在URL中包含timestamp参数以避免在所有jQuery Ajax调用中进行缓存?
Nic*_*ver 10
简而言之,是的.IE不遵守正常的缓存规则,但jQuery也可以自动添加此参数,只需使用如下cache: false选项:
$.ajax({
type: "GET",
url: url,
cache: false,
data: {
sort_by:$('#componentSortOrder input:hidden').val(),
offset:My.WishList.offset,
per_page: 10,
timestamp: new Date().getTime()
},
success: function(transport){
$("#wishlistPage .results").html(transport);
}
});
Run Code Online (Sandbox Code Playgroud)
结果是一样的,它为URL添加了一个时间戳,你可以在这里看到代码.
| 归档时间: |
|
| 查看次数: |
3734 次 |
| 最近记录: |