0

我正在使用 CSV2Table 插件:CSV2Table

html页面的正文是:

  <body onload="JavaScript:timedRefresh();">
     <div id="CSVTable"></div>
  </body>

TimedRefresh 脚本是:

    <script type="text/JavaScript">
       function timedRefresh() {
         setInterval(function(){
         ref()},30000);
    </script>

将 CSV 加载到 DIV 的脚本是:

        <script type="text/javascript">

    function ref(){
        $('#CSVTable').CSVToTable('q.csv', { loadingImage: 'images/loading.gif', startLine: 0, tableClass:'table table-condensed table-striped table-bordered table-hover' }).bind("loadComplete",function() { 
        $('#CSVTable').find('TABLE').tablesorter().tableClass('table table-condensed');     
        
                    });
        </script>

问题是,尽管调用了ref ,但CSV2Table 似乎正在缓存结果 - 而不是重新读取 CSV 文件(在其他地方动态更新)。

有没有办法阻止缓存在 CSV2Table 上发生?我试过谷歌搜索,但找不到它的缓存设置!

谢谢你的帮助,

标记

4

1 回答 1

2

CSVToTable使用$.get,因此您可以使用$.ajaxSetup来设置全局ajax缓存设置;例如

$.ajaxSetup({ cache: false });

以上将阻止在所有后续 AJAX 请求中使用缓存,包括由CSVToTable. 这种方法当然有缺点,jQuery 文档本身建议不要使用ajaxSetup.

另一种选择是更改插件的来源,使用$.ajax,并允许将 ajax 选项传递给插件,以便可以将插件配置为不使用缓存。如果您继续进行这样的更改,您当然应该将其提交给作者,以便它可以合并到主分支中,并且您可以下载未来的更新而不会覆盖您自己的更改。

于 2013-04-02T10:29:09.363 回答