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