【发布时间】:2016-02-01 16:38:28
【问题描述】:
我已经寻找了几个星期的解决方案,但无济于事。
我的 Web 应用程序使用 Spring/Hibernate。当我进行 AJAX 调用以检索表的数据时(使用 Datatables),一切正常。但是,当我单击链接然后单击 BACK 以返回表格时,IE 和 Firefox 的行为似乎有所不同:
火狐:
- 显示表格页面(AJAX 调用);
- 点击链接进入新页面;
- 点击返回返回表格页面;
- 不调用数据库 DAO 来重新显示数据
互联网探索者:
- 显示表格页面(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被调用却使用url?
-
"url" 包含获取数据的函数。在 FIREFOX 中,如果我离开然后返回,则不会调用“url”。在IE中,每次都会调用url。
-
我发现了一个与我类似但没有明确答案的问题:stackoverflow.com/questions/7825579/…
标签: spring jsp datatables