繁体   English   中英

使用xlsx.js实时更新div

[英]Live updating div with xlsx.js

我有一个基本网页,其中包含许多div。 我正在使用xlsx.js包从存储在网页服务器(即网页根目录)中的多个xlsx文件读取数据。 我每秒都要轮询xlsx文件以监视更改。

下面是我的代码的基本表示形式:

HTML div设置:

<script type="text/javascript" src="xlsx.js"></script>

<div class="container" id="main_div">STARTING STRING</div>

JS:

<script type="text/javascript">
    (function(window, document, undefined) {
        window.onload = run;

        function run() {
            var Source = "Data.xlsx";
            var GetData = new XMLHttpRequest();
            GetData.open("GET", Source, true);
            GetData.responseType = "arraybuffer";

            GetData.onload = function(e) {
                //Receive and process XLSX data into an array
                //Assign 'Cell' as a particular cell in the worksheet
                var Cell = Worksheet['A1'];
                var CellValue = Cell.v;

                //Assign CellValue to the div
                document.getElementById('main_div').innerHTML = CellValue;

                //Start a 1 second poll
                var DataPoll = setTimeout(run, 1000);
            }

            GetData.send();

        }

    })(window, document, undefined);
</script>

我遇到的问题是,将更改保存到工作表中的单元格A1(在服务器本身上)时,main_div(在客户端网页上)并不总是更新为新值。 即使刷新客户端网页,它也通常会保留以前的A1值。 我认为这可能是缓存问题,所以我使用了所有必需的缓存控制HTML元参数。

我应该在run()函数开始时清除div吗?

编辑:一些进一步的澄清。 我一直在服务器本身(本地主机)上运行该网页,以消除它成为服务器连接问题的可能性。 我检查了IIS日志文件,该文件仅显示200和304 HTTP状态代码。

我已经在Chrome开发者工具中检查了网络请求,突出了我最初认为的问题。 实际上并不是每秒都在检查Data.xlsx文件。 它正在从缓存(HTTP状态代码)“检查”文件,该文件显然不会包含对Excel文件所做的任何更改。

鉴于这确实看起来像是一个缓存问题,并且我已经设置了所有HTML元数据缓存控制特性,是否可以采取其他步骤来防止.xlsx文件的缓存?

在此处输入图片说明

您可以通过使用来逃避缓存吗

var Source = "Data.xlsx?" + new Date().getTime();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM