2016-09-24 37 views
1

我不想使用Node.js,FileReader或其他任何exept javascript的解决方案! 开发html页面,我遇到了如下问题: 我用这个程序得到准确的结果,不幸的是程序记得第一个登录页面的结果。无论哪个文本文件同时更改内容,该过程都会返回第一个结果。 有人可以给意见!阅读文本文件逐行使用javascript

var filePath = "../../dir/sub dir/text_file.txt"; 
function getBackData(filePath){ 
    var axd, i, artx, txli, tdr; 
    if(window.XMLHttpRequest){ 
     axd = new XMLHttpRequest(); 
    }else{ 
     axd = new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
    axd.open('GET', filePath, true); 
    axd.onreadystatechange = function(){ 
     if(axd.readyState == 4 && axd.status == 200){ 
      artx = axd.responseText; 
      txli = artx.split("\n"); 
      for(i = 0; i < txli.length; i++){ 
       alert(txli[i]); 
      } 
     } 
    } 
    axd.send(null); 
} 

回答

0

你可以尝试:axd setRequestHeader('Cache-Control', 'no-cache');

或者试试:axd.open('GET', filePath+'?_=' + new Date().getTime()), true);这将防止您的服务器使用的现金,因为每个请求是不同的。

+0

感谢O_Z快速高效的响应。我已经使用了你的建议,现在它完美的工作! – Borache

+0

我很感谢其他人,他们的提示也很有帮助。 – Borache

+0

@Borache你为什么不接受我? –

0

这可能是因为浏览器缓存它。如果您发送的参数几乎总是与时间戳不同,则可以禁用缓存。或者你可以尝试使用POST,因为post请求从不被缓存。

0

你不能直接用ajax请求本地文件 - 你需要一个服务器来为它们服务。浏览器是沙盒,通常不能打开本地文件。这是一项安全措施 - 想象一下,如果任何网站被允许打开您的文件会发生什么!

有办法为您的图像设置一个简单的服务器,如http-server。这使您可以直接服务的文件从选定的目录,比如:

npm install -g http-server 
http-server path-to-text-files/ 

然后你可以使用Ajax通常要求的文件,在路径相对于你的服务器服务,像这样的一个:

url = "/dir/subdir/text-file.txt"; 
... 
ajax.open('GET', url, true); 
... 
ajax.send(null);