请参阅下面的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);
}
});
},
我的问题不在于分页,问题是当我需要调用同一个函数时,当某些内容发生在页面的其他部分删除了一些搜索结果时,它会在IE7中带来旧结果,其他浏览器工作正常。所以添加了时间戳:new Date()。getTime()部分。这解决了IE问题。
我想知道为什么在jQuery中会发生这种情况?我是否需要在URL中包含timestamp参数以避免在所有jQuery Ajax调用中进行缓存?
答案 0 :(得分:10)
简而言之,是。 IE不遵守通常的缓存规则,但jQuery也可以自动添加此参数,只需使用the cache: false
option,如下所示:
$.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);
}
});
结果相同,它为网址you can see the code here添加时间戳。