在 OpenWrt Web 界面 luci 中更新变量信息

图片

从图片中可以看到 RSSI 的值,在 luash 中有显示这个值的代码,sh 脚本会将这个值写入文件,而在 lua 中我们会从文件中将它取出并赋值给标签元素

os.execute('/bin/rssi')
file = io.open("/tmp/rssi", "r");
d:option(DummyValue, "label", "rssi: "..(file:read("*line")));
file:close();

一切正常,但是我希望能够每隔 N 秒在 Web 界面中看到这些信息。非常感谢您的帮助。

点赞
用户10437341
用户10437341

它是必须在前端(HTML、JS、PHP)而不是在 Lua 后端中实现的。我不知道现在的孩子们是怎么做的,但据我所知,你需要使用 JavaScript 每隔几秒钟刷新 HTML 文档的一部分,因为这是你想要的。

它的工作方式如下:

  1. 从 Chrome/Firefox/Opera/Edge 请求一个网页;

  2. Web 服务器打开请求的文件,如果文件是脚本,则运行脚本;

  3. 脚本从系统、数据库等中检索数据;

    3.1 Lua 脚本运行,返回值(RSSI 值,对于你而言);

    3.2 脚本使用从 Lua 脚本返回的值替换变量;

    3.3 脚本返回 HTML 代码,其中变量已被替换为来自数据库、系统等的值;

  4. Web 服务器将数据通过网络发送出去;

  5. 客户端 Web 浏览器显示数据,通常作为由 CSS 格式化的 HTML 文档,具有 JavaScript 可交互性和自动活动。

在你的情况下,你需要这样做:

  1. 客户端浏览器中的 JavaScript 刷新文档的一部分,实际上通过步骤 1-5,但仅替换正在显示的部分(HTML 元素)。
2019-11-23 23:47:59