我一直在尋找解決方案几個星期,現在無濟於事。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
這很奇怪,爲什麼你使用網址,而你不希望這個網址被稱爲? –
「url」包含獲取數據的函數。在FIREFOX中,如果我離開然後回來,「url」不會被調用。 在IE中,每次調用url。 –
我發現了一個類似於我的問題,但沒有明確的答案:http://stackoverflow.com/questions/7825579/make-the-bfcache-in-internet-explorer-work-like-firefox –