使用javascript从我的服务器上的文件进行实时更新

Using javascript for real time update from a file on my server

本文关键字:文件 实时更新 javascript 我的 服务器 使用      更新时间:2023-09-26

首先,感谢我看到的所有伟大的答案,这些答案帮助了我过去的项目。

这就是我要做的。我正在组装一个家庭自动化系统,我想做的一件事就是向我的网络服务器发送请求,并让它实时给我一个状态。

其中99%,我有工作。我现在需要(想要)做的是让一个简单的页面检查我的网络服务器上文件的状态,并让它实时相应地更改图像。

文件的内容将仅是以下单词之一:

、关、开或关。

我可以使用页面刷新,

我的后端 ASP 将完成这项工作,但我想要比刷新时页面闪烁更优雅的东西。所以,我想如果有办法在 JavaScript 中检查文件的内容,那么我可以使用变量 fileContents 中的文件内容执行以下操作:

document.GetElementById('image').src = 'MyServer.address/GFX/' + fileContents + '.png'

这样,当文件在我的服务器上发生更改时,页面上显示的图像会(近乎)实时更改而不会闪烁。

请帮助我找到此方案中缺少的链接。

我想使生成的页面尽可能紧凑。下面是我的 ASP 生成的页面的示例:

http://ssbbs.dyndns.org/panic/isy.asp?A=3D30711&T=S

如果我正在轮询的设备处于打开状态,则会显示一个绿色圆圈,如果设备处于关闭状态,则会显示一个蓝色圆圈。

我将作为示例阅读的文件是:

http://ssbbs.dyndns.org/panic/ISY/3D30711.txt

对 ASP 脚本使用 Javascript AJAX 调用。 您可以获取状态并更新页面,而无需刷新。 JQuery对于这样的事情特别有用。

我想出一种方法来实现我的最终目标,认为不完全优雅,它简单而小巧,满足了我的主要要求。

闪烁的刷新页面现在保存在隐藏的 iframe 中,然后重复的 javascript 更新静态页面而不会闪烁。刷新页面不再具有显示图像,而只是由 javascript 更新的图像的源文件名。IE:GFX/反馈/关闭.png

<!DOCTYPE HTML>
<HTML>
  <HEAD>
    <STYLE>
      BODY {background: #000000; color: #FFFFFF;}
      #isy {visibility: hidden; height:0px;width:0px;}
    </STYLE>
  </HEAD>
  <BODY onload="isyRead();">
    <IMG ID="state" SRC="GFX'feedback'blank.png">
    <SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
        function isyRead() {
            var isy = document.getElementById('isy');
            if (isy.contentDocument) isy.contentDocument.location.replace("isyRead.asp?A=3C3FE71&T=S");
            else isy.src = "isyRead.asp?A=3C3FE71&T=S";
            setTimeout(function(){document.getElementById('state').src=isy.contentWindow.document.body.innerHTML}, 100);
            setTimeout(isyRead, 4000 );
        }
    </SCRIPT>
    <IFRAME SRC="about:blank" ID="isy"></IFRAME>
  </BODY>
</HTML>

希望其他人会发现这有帮助。