Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Javascript不断读取更新的XML文件_Javascript_Xml_Filereader_Domexception - Fatal编程技术网

使用Javascript不断读取更新的XML文件

使用Javascript不断读取更新的XML文件,javascript,xml,filereader,domexception,Javascript,Xml,Filereader,Domexception,我希望通过设置一个间隔来不断观察不断变化的XML文件的内容,该间隔调用reader.readAsText()函数。我可以访问数据,直到第一次更新XML文件 从那时起,读取器在尝试读取文件时抛出一个名为“NotReadableError”的DomeException。然后我必须通过“打开文件”对话框重新打开文件,我不想这样做 有什么建议吗?这可能吗 简化的代码如下所示: window.onload = function() { setInterval(checkFile, 200); } f

我希望通过设置一个间隔来不断观察不断变化的XML文件的内容,该间隔调用
reader.readAsText()
函数。我可以访问数据,直到第一次更新XML文件

从那时起,读取器在尝试读取文件时抛出一个名为“NotReadableError”的DomeException。然后我必须通过“打开文件”对话框重新打开文件,我不想这样做

有什么建议吗?这可能吗

简化的代码如下所示:

window.onload = function() {
  setInterval(checkFile, 200);
}

function checkFile() {
  var input = document.getElementById("file");
  var file = input.files[0];
  var reader = new FileReader();
  reader.onload = function(event) {
      //stuff 
    };
    reader.readAsText(file);
  }
}

致以最诚挚的问候。

有两个理由:

文件或Blob的快照状态与基础存储的状态不匹配,这是SnapshotState失败的原因

这可能意味着,如果在浏览器中拾取的
文件
的状态发生变化,则无法再读取该文件

如果出现以下情况,也可能发生错误:

无法读取文件或Blob,这通常是由于快照状态建立后出现的权限问题(例如,与另一个应用程序在基础存储上并发锁定)造成的。这就是文件锁定失败的原因

也许您也遇到了这种情况,因为您试图在文件更新时读取文件,并且您的操作系统可能使用了文件锁


目前还不清楚您遇到的是哪种情况,规范中似乎也没有任何东西可以找出导致此错误的原因。我怀疑快照问题正是您所遇到的,而
文件
的浏览器API不允许您执行希望执行的操作。对于您试图解决的根本问题,可能还有另一种解决方案。

有两个原因:

文件或Blob的快照状态与基础存储的状态不匹配,这是SnapshotState失败的原因

这可能意味着,如果在浏览器中拾取的
文件
的状态发生变化,则无法再读取该文件

如果出现以下情况,也可能发生错误:

无法读取文件或Blob,这通常是由于快照状态建立后出现的权限问题(例如,与另一个应用程序在基础存储上并发锁定)造成的。这就是文件锁定失败的原因

也许您也遇到了这种情况,因为您试图在文件更新时读取文件,并且您的操作系统可能使用了文件锁

目前还不清楚您遇到的是哪种情况,规范中似乎也没有任何东西可以找出导致此错误的原因。我怀疑快照问题正是您所遇到的,而
文件
的浏览器API不允许您执行希望执行的操作。也许你要解决的根本问题还有另一个解决方案