2013-08-05 162 views
2

默認情況下,DataTable中的Ajax調用通過在URL上添加一個僞造字段來避免緩存。 http://yoursite.com/api/?_348522852542'。我想禁用這個。看來,ajax的函數調用fnServerData它的定義是這樣的......允許服務器端緩存在DataTable中的`fnServerData`中

"fnServerData": function (sUrl, aoData, fnCallback, oSettings) { 
     oSettings.jqXHR = $.ajax({ 
      "url": sUrl, 
      .... 
      "cache": false, 
      .... 
      }); 
     }; 

我要爲"cache"值是true而非false。我錯過了什麼嗎?爲什麼這樣硬編碼呢?做這個改變的最好方法是在本地編輯源代碼還是提交補丁?

回答

0

這實際上幫助了我,當已緩存的數據(在Redis的),以解決我的問題由數據表(1.10.10)重新緩存,這裏是我的代碼(這是我會刷新數據,因爲它的緩存速度很快):

<script type="text/javascript" charset="utf-8"> 
     $(document).ready(function() { 
      var table = $('#issues-table').DataTable({ 
       processing : true, 
       ajax: { 
         url: '/jira', 
         dataSrc: 'issues', 
         cache: true 
       }, 
       order: [ 0, 'desc' ], 
       fnRowCallback: function(nRow, aData, iDisplayIndex) { 
        $('td:eq(0)', nRow).html('<a href="http://jira.com/browse/' + aData[0] + '" target="_blank">' + 
         aData[0] + '</a>'); 
        return nRow; 
       }, 
      }); 
      setInterval(function() { 
       table.ajax.reload(null, false); // user paging is not reset on reload 
      }, 30000); 
     }); 
</script>