我一直在寻找解决方案几个星期但现在无济于事。
我的Web应用程序使用Spring / Hibernate。当我进行AJAX调用以检索我的表的数据时(使用 Datatables ),一切都显示正常。但是,当我单击一个链接然后单击BACK返回到表时,IE和Firefox似乎表现不同:
FIREFOX :
INTERNET EXPLORER :
为什么会发生这种情况?我该如何解决这个问题?基本上我希望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)
对于遇到同样问题的人,我发现这是:
这是jQuery和Internet Explorer的IE问题:
jQuery会自动将卸载事件附加到窗口,所以 不幸的是,使用jQuery将取消您的页面存储在>用于DOM保存和快速返回/转发的bfcache。
https://stackoverflow.com/a/1195934/1501426
看起来我一直坚持这个。现在,当用户点击链接但是IMO时,我会打开一个新窗口,这是一个糟糕的设计。