簡體   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