我有一个基本网页,有很多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吗?
编辑:进一步澄清。我一直在服务器本身(localhost)上运行网页,以消除它成为服务器连接问题的可能性。我检查了IIS日志文件,它只显示了200和304个HTTP状态代码。
我已经在Chrome开发者工具中检查了网络请求,这突出了我最初认为的问题。 Data.xlsx文件实际上并不是每秒都要检查一次。它正在检查&#39;缓存中的文件(HTTP状态代码),显然不包含对Excel文件所做的任何更改。
鉴于这确实看起来像一个缓存问题,并且我已经设置了所有HTML元缓存控制特性,是否还有其他步骤可以阻止.xlsx文件的任何缓存?< / p>
答案 0 :(得分:1)
您可以使用
来逃避缓存吗?var Source = "Data.xlsx?" + new Date().getTime();