2017-05-09 103 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