【问题标题】:Dynamic website with monitoring带监控的动态网站
【发布时间】:2018-01-11 01:31:47
【问题描述】:

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

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

【问题讨论】:

    标签: javascript monitoring


    【解决方案1】:

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

    获得文件后,您可以使用文件的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 文件系统模块核心内置的 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是上面sn -p中的修改时间。与上面的客户端解决方案不同,此功能一旦实现就会在文件更改时自动触发。

    你可以阅读更多关于fs.watchFile here.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-08
      • 2013-03-08
      • 1970-01-01
      • 1970-01-01
      • 2015-03-14
      • 2013-06-02
      相关资源
      最近更新 更多