2016-02-01 45 views
1

我一直在尋找解決方案几個星期,現在無濟於事。Internet Explorer忽略緩存? (AJAX調用和Datatables)

我的web應用程序使用Spring/Hibernate。當我進行AJAX調用來檢索我的表的數據時(使用Datatables),一切都顯示正常。然而,當我點擊一個鏈接,然後點擊返回,回到桌子上,IE和Firefox似乎表現不同:

FIREFOX

  • 顯示錶頁面(AJAX調用);
  • 點擊鏈接轉到新頁面;
  • 點擊返回返回表格頁面;
  • 數據庫DAO NOT稱爲重新顯示數據

INTERNET EXPLORER

  • 顯示錶頁(AJAX調用);
  • 點擊鏈接轉到新頁面;
  • 點擊返回返回表格頁面;
  • 數據庫DAO IS稱爲重新顯示數據

這是怎麼回事,我該如何解決這一問題?基本上我希望IE在這種特殊情況下表現得像Firefox一樣。

示例代碼(JSP):

$('#tableWithData').DataTable({ 
    serverSide : false, 
    ajax: { 
     "url": "/app/search/rowData", 
     "data": function (d) { 
      d.searchDeptlCntnrNo = $('#criteriaDeptlCntnrNo').val(); 
      d.searchCntlNoCd  = $('#criteriaCntlNoCd').val(); 
      d.searchExactMatch  = $('#criteriaExactMatch').val();     
      d.searchCntlNoCmpnt1 = $('#criteriaCntlNoCmpnt1').val();    
      d.searchCntlNoCmpnt2 = $('#criteriaCntlNoCmpnt2').val(); 
      d.searchCntlNoCmpnt3 = $('#criteriaCntlNoCmpnt3').val(); 
      d.searchCntlNoCmpnt4 = $('#criteriaCntlNoCmpnt4').val(); 
      d.searchRangeField  = $('#criteriaRangeField').val();     
      d.searchCntlNoCmpntQty = $('#criteriaCntlNoCmpntQty').val(); 
      d.searchCntlNoCmpntRng = $('#criteriaCntlNoCmpntRng').val(); 

    }},   
    stateSave: true,  
    pagingType: "full_numbers",   
    deferRender: true,   
    scrollY:  400, 
    scrollCollapse: true, 
    scroller:  true, 
    lengthChange: false, 
    "columns": columns,    
    language: { 
     "loadingRecords": loading data..."}, 
    fnInitComplete: function(oSettings, json) { 
     $("#loading-div-background").hide(); 
     }, 
    language :{ 
      "emptyTable": "Your query returned 0 results."   
     } 

});  

編輯:

這將是一個BFCache問題,因爲我用jQuery和它有一個內置的onload事件,Internet Explorer無法檢索緩存? https://stackoverflow.com/a/1195934/1501426

+0

這很奇怪,爲什麼你使用網址,而你不希望這個網址被稱爲? –

+0

「url」包含獲取數據的函數。在FIREFOX中,如果我離開然後回來,「url」不會被調用。 在IE中,每次調用url。 –

+0

我發現了一個類似於我的問題,但沒有明確的答案:http://stackoverflow.com/questions/7825579/make-the-bfcache-in-internet-explorer-work-like-firefox –

回答

0

對於有同樣的問題的人,這裏是我發現:

這是一個IE瀏覽器問題與jQuery和Internet Explorer:

jQuery的自動連接卸載事件到窗口,所以 不幸的是,使用jQuery會使您的頁面不能存儲在> bfcache中,以保存DOM並快速返回/轉發。

https://stackoverflow.com/a/1195934/1501426

它看起來像我堅持這一點。現在,當用戶點擊鏈接但IMO時,我會打開一個新窗口,這是一個糟糕的設計。