Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring Internet Explorer忽略缓存?(AJAX调用和数据表)_Spring_Jsp_Datatables - Fatal编程技术网

Spring Internet Explorer忽略缓存?(AJAX调用和数据表)

Spring Internet Explorer忽略缓存?(AJAX调用和数据表),spring,jsp,datatables,Spring,Jsp,Datatables,我已经寻找了几个星期的解决方案,但没有结果 我的web应用程序使用Spring/Hibernate。当我调用AJAX为我的表检索数据(使用Datatables)时,一切都很好。然而,当我点击一个链接,然后点击返回返回表格时,IE和Firefox的行为似乎有所不同: FIREFOX: 显示表格页面(AJAX调用) 点击链接进入新页面 单击〖上一步〗按钮,返回表格页面 调用数据库DAO不以重新显示数据 INTERNET EXPLORER: 显示表格页面(AJAX调用) 点击链接进入新页面 单击

我已经寻找了几个星期的解决方案,但没有结果

我的web应用程序使用Spring/Hibernate。当我调用AJAX为我的表检索数据(使用Datatables)时,一切都很好。然而,当我点击一个链接,然后点击返回返回表格时,IE和Firefox的行为似乎有所不同:

FIREFOX

  • 显示表格页面(AJAX调用)
  • 点击链接进入新页面
  • 单击〖上一步〗按钮,返回表格页面
  • 调用数据库DAO以重新显示数据
INTERNET EXPLORER

  • 显示表格页面(AJAX调用)
  • 点击链接进入新页面
  • 单击〖上一步〗按钮,返回表格页面
  • 调用数据库DAO以重新显示数据
为什么会发生这种情况?我如何解决?基本上,我希望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无法检索缓存

对于有同样问题的人,我发现:

这是jQuery和Internet Explorer的IE问题:

jQuery自动将卸载事件附加到窗口,因此 不幸的是,使用jQuery将取消您的页面在>bfcache中存储的资格,以便保存DOM和快速返回/转发


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

对于有相同问题的人,我发现:

这是jQuery和Internet Explorer的IE问题:

jQuery自动将卸载事件附加到窗口,因此 不幸的是,使用jQuery将取消您的页面在>bfcache中存储的资格,以便保存DOM和快速返回/转发


看来我被这件事缠住了。现在,当用户单击链接时,我将打开一个新窗口,但在我看来,这是一个糟糕的设计。

很奇怪,为什么在不希望调用此url的情况下使用url?“url”包含获取数据的函数。在FIREFOX中,如果我离开,然后回来,就不会调用“url”。在IE中,url每次都被调用。我发现了一个类似于我的问题,但没有明确的答案:很奇怪为什么你使用url,而你不想调用此url?“url”包含获取数据的函数。在FIREFOX中,如果我离开,然后回来,就不会调用“url”。在IE中,每次都会调用url。我发现了一个与我类似的问题,但没有明确的答案: