2017-05-09 155 views
0

因此,我所做的是從文本文件中收集信息,然後將其轉換爲html頁面上的文本。下面的代碼:創建讀取文本文件或實時更改的循環

HTML:

<div id="text" class="text"></div> 

的JavaScript:

var text_print = new XMLHttpRequest(); 
     text_print.open("GET", "file.txt", true); 
     text_print.onload = function(){ 
     document.getElementById("text").innerHTML=text_print.responseText; 
     text_print.send(null); 

我現在需要做的,是讓這個腳本運行的每一秒。
我的服務器中的file.txt不斷變化,因此我需要在文件更改時屏幕上顯示的信息發生更改。
謝謝。

+1

每秒....我懷疑你的服務器將享受那 – epascarello

+5

不要這樣做。這不安全並浪費帶寬。改爲使用[套接字](https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API)。 –

+0

嗨epascarello和德里克。首先,感謝您的建議!正如我在willicab的評論中提到的那樣,這個項目僅限本地使用本地服務器。它不會被上傳併成爲公共網站。這真的可能會導致問題?謝謝! –

回答

1

這不是最有效的方法,但如果你仍然決定繼續,這可以幫助你。

window.setInterval(function(){ 
    var text_print = new XMLHttpRequest(); 
    text_print.open("GET", "http://localhost/post/file.txt", true); 
    text_print.send(); 
    text_print.onreadystatechange = function() { 
     if (text_print.readyState == 4) { 
      if(text_print.status == 200) { 
       document.getElementById("text").innerHTML=text_print.responseText; 
      } 
     } 
    } 
}, 1000); 
+0

嗨,willicab!首先,感謝您的維修人員,我工作得很好,就像我需要的一樣。但是,由於成員們說服務器不好,我很擔心。我的項目實際上是本地的,我不知道你是如何知道的,因爲你爲本地託管文件(可能是巧合)放置一個URL,但文本文件只有1行。當它改變時,只改變那一行,留一行。所以,這些文件並不大,因爲它是一行文本文件。這可能真的會導致問題?即使是小文件?再次,它只是本地的,我不會上傳這個公共網絡。謝謝。 –

+0

好吧,應該有更多的問題,但一如更多的客戶打電話更多的工作將有服務器,你可以做一個壓力測試來驗證 – willicab