2014-01-14 81 views
0

我的JavaScript有一個功能,該功能會關閉onload,它需要一個.txt文件並從中創建一個數組。該頁面在Chrome中正常工作,但不在IE中更新 - IE似乎緩存.txt文件並從緩存中重新創建數組,忽略對.txt所做的任何更新。有什麼方法可以強制IE在創建數組之前重新下載.txt,以便用戶不使用過時的信息版本?強制IE在加載時重新下載文本文件

編輯: Code !! (變更文件路徑名,所有其他條件是相同的)

function createArray() { 
    var txtFile = new XMLHttpRequest(); 
    txtFile.open("GET", "http://PATHNAME/names.txt", true); 
    txtFile.onreadystatechange = function() { 
     if (txtFile.readyState === 4) { 
      if (txtFile.status === 200 || txtFile.status === 0) { 
       nameArray = txtFile.responseText.split("\n"); 
      } 
     } 
    }; 
    txtFile.send(null); 
} 

此外,該文件被存儲在服務器上,在同一文件夾中的頁面上的數據顯示,這是一個水平的JavaScript文件夾的上。因此,目錄如下所示:

page.html 
names.txt 
SCRIPTS FOLDER 
    array.js 
+0

你可以發佈你的代碼嗎? 「.txt」文件位於哪裏?服務器端還是客戶端? – War10ck

+0

感謝您的評論!我使用代碼的相關部分(實際調用文件並創建數組的那部分)編輯了帖子;如果我需要發佈其他代碼,我想我會的。 :)也用我的目錄結構編輯它,這表明.txt文件是服務器端的。 – Aujury

+0

獲取緩存。在查詢字符串中添加一個緩存斷路器。 – epascarello

回答

2

獲取請求緩存,強制它通過更改url來獲取新文件。

txtFile.open("GET", "http://PATHNAME/names.txt?ts=" + new Date().getTime(), true); 
+0

+1在我做之前就明白了...... :) – War10ck

+0

完美無缺!感謝您及時的回覆。看起來它的運作完全按照它應該的方式運作。 :) – Aujury