2010-06-15 71 views
4

請參閱jQuery代碼下面,它使用的分頁某些搜索結果在IE7中,jquery是否需要GET方法調用時間戳?

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調用中緩存?

回答

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); 
     } 
    }); 

的結果是一樣的,它增加了一個時間戳的URL,you can see the code here

+0

這是一個理想的答案,脫帽! – 2010-06-15 11:23:52

相關問題