javascript - 使用 javascript 从 txt 文件中读取数据,每 5 分钟一次

标签 javascript php html

我正在尝试制作一个显示当前家中温度并允许我根据需要设置温度的网站。要读取温度,我使用 raspberry pi 零和 python 代码将每 5 分钟的温度保存到 .txt 文件中。问题是我需要在 5 分钟内从该文件读取我网站上的当前温度。我可以使用:

<head> <meta http-equiv="Refresh" content="s" /> </head>

但它看起来不是一个好的选择,所以我认为我可以使用 javascript 并从文件中读取数据。不幸的是,无论我在 .txt 文件中更改什么并刷新网络,此功能只工作一次,输出仍然相同(看起来它将以前的数据保存到某种全局变量)。

function readTextFile()
            {
                var rawFile = new XMLHttpRequest();
                rawFile.open("GET", 'text.txt', true);
                rawFile.onreadystatechange = function ()
            {
                if(rawFile.readyState === 4)
            {
                if(rawFile.status === 200 || rawFile.status == 0)
            {
                var allText = rawFile.responseText;
                alert(allText);
            }
        }
    }
    rawFile.send(null);
}

在这张图片的左侧,有来自 txt 文件的数据(使用 php),在警报处理程序中是使用 javascript 和提交按钮的数据。这些数据应该是一样的。

enter image description here

所以问题是:当 .txt 文件动态变化时,我可以读取它吗?如果是这样,我该怎么做或使用什么功能来做到这一点?我不太了解javascript。 我将非常感谢您的帮助。

最佳答案

使用 XHR 在定义的时间间隔内获取记录并不是一个好的解决方案。我建议您使用 JavaScript EventSource API。您可以使用它以定义的时间间隔接收 text/event-stream。您可以在此处了解更多信息 -

https://developer.mozilla.org/en-US/docs/Web/API/EventSource

对于你的应用,你可以这样做——

JavaScript -

var evtSource = new EventSource('PATH_TO_PHP_FILE');

evtSource.onmessage = function(e) {
    //e.data contains the fetched data
}

PHP代码-

<?php
    header('Content-Type: text/event-stream');
    header('Cache-Control: no-cache');
    $myfile = fopen("FILE_NAME.txt", "r");
    echo "data:". fread($myfile,filesize("FILE_NAME.txt"))."\n\n";
    fclose($myfile);
    flush();
?>

关于javascript - 使用 javascript 从 txt 文件中读取数据,每 5 分钟一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44368310/

相关文章:

php - 并排回显多个 div,其中包含来自 DB 的内容和容器 div 的填充宽度

php - Woocommerce 购物车页面添加额外的 <p> 标签

php - php 中的 utf-8 url 解析 :file_get_content and browser

javascript - 在 Javascript 中通过多个 if 语句运行 While 循环

php - 使用 PHP 或 JS 将表单值传递到其他页面

javascript - angularjs - 模型更改时更新表列

Php Mass/group 检查值

html - 当视口(viewport)垂直调整大小时,100% 高度的 Div 会变得比 100% 短

javascript - 顶部栏在基础 4.3.2 版本中不起作用?

javascript - 一个类轮删除多个对象属性