动态网站监控

时间:2018-01-11 01:31:48

标签: javascript monitoring

我想创建一个监控同一域上的文本文件的网站,并在文本文件更改时自动更新段落。关于我可能使用的什么好主意?

我觉得有一个运行循环的JavaScript文件监视文件并不是一个好习惯,所以任何其他建议都会很棒!

1 个答案:

答案 0 :(得分:0)

如果您在客户端上执行此操作,则无法自动访问用户文件系统。您需要使用对话框打开文件,选择文件。

获得文件后,您可以使用文件的lastModified属性来检查文件何时被修改。如果存储对该文件的引用,则可以创建一个间隔,如果文件发生更改,将检查每个x。

一个全局变量来跟踪最近的文件修改日期(所以稍后我们可以比较它是否不同)

var lastModificationDate = undefined;

然后,当选择文件时,您希望获取文件并设置lastModificationDate属性并开始间隔。

file = input.files[0];
lastModificationDate = file.lastModified;
setInterval(checkFile, 500);

您的checkFile功能如下:

var file = input.files && input.files[0];
if (file && lastModificationDate && file.lastModified.getTime() != lastMod.getTime()) {
   lastModificationDate = file.lastModified;
   // Do something else, file was modified
}

使用HTML5 File API可以实现上述功能,您可以阅读更多相关信息here

对于Node.js解决方案: 使用Nodes File System模块核心内置的fs.watchFile功能。

fs.watchFile('message.text', (curr, prev) => {
  console.log(`the current mtime is: ${curr.mtime}`);
  console.log(`the previous mtime was: ${prev.mtime}`);
});

mtime是上述代码段中的修改时间。与上面针对客户端的解决方案不同,此功能会在实施后自动触发文件更改。

您可以阅读有关fs.watchFile here.

的更多信息