【问题标题】:Internet Explorer ignoring cache ? (AJAX call & Datatables)Internet Explorer 忽略缓存? (AJAX 调用和数据表)
【发布时间】: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


【解决方案1】:

对于任何有同样问题的人,这是我发现的:

这是 jQuery 和 Internet Explorer 的 IE 问题:

jQuery 自动将卸载事件附加到窗口,所以 不幸的是,使用 jQuery 将使您的页面无法存储在 bfcache 中以进行 DOM 保存和快速后退/前进。

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

看来我被困住了。现在,当用户点击链接时,我会打开一个新窗口,但 IMO,这是一个糟糕的设计。

【讨论】:

    猜你喜欢
    • 2016-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-24
    • 1970-01-01
    • 2012-03-15
    • 2015-09-02
    • 2011-02-08
    相关资源
    最近更新 更多