1

首先,感谢我所看到的所有出色的答案,这些答案帮助我完成了过去的项目。

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

其中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

4

2 回答 2

0

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

于 2016-01-20T02:05:40.567 回答
0

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

闪烁的刷新页面现在保存在隐藏的 iframe 中,然后重复的 javascript 更新静态页面而不会闪烁。刷新页面不再有显示图片,而只是javascript更新的图片的源文件名。IE:GFX/反馈/Off.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>

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

于 2016-01-28T23:04:20.457 回答