gpt4 book ai didi

javascript - 使用 xlsx.js 实时更新 div

转载 作者:行者123 更新时间:2023-12-03 07:18:37 26 4
gpt4 key购买 nike

我有一个基本的网页,有许多 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 文件的任何缓存?

enter image description here

最佳答案

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

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

关于javascript - 使用 xlsx.js 实时更新 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36297868/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com