CC3100 http server 数据自动刷新的问题
我在做CC3100 SDK中提供的http server例程,发现当同时开启了两个“blink_led.html”页面时,两者的LED状态的显式不同步,即,在一个页面中操控了LED,在另一个页面中状态不会跟随刷新,这说明LED的状态在页面上根本没有实时刷新,而只是在打开或刷新整个页面时才刷新的。我曾尝试修改“blink_led.html”页面源文件,加入周期对整个页面的刷新请求,每周期请求页面后,执行LED控件的状态刷新,但是运行不正确。添加的修改代码如下。 很多应用都需要实时数据在页面自动刷新,因此请问如何利用官方提供的user GET Token机制实现数据的动态刷新?或者有其它方式实现页面数据的动态刷新吗?谢谢!
<script type="text/javascript">
......
function makeRequest(url) {
var http_request = false;
if (window.XMLHttpRequest) {
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType) {
http_request.overrideMimeType('text/xml');
}
} else if (window.ActiveXObject) {
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e) {
try {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e) {}
}
}
if (!http_request) {
alert('Giving up :( Cannot create an XMLHTTP instance');
return false;
}
http_request.open('GET', url, true);
http_request.onreadystatechange = function() { alertContents(http_request); };
http_request.send(null);
}
function alertContents(http_request) {
if (http_request.readyState == 4) {
if (http_request.status == 200) {
UpdateStatus();
}
}
}
function loop() {
makeRequest("blink_led.html");
setTimeout("loop()", 1000);
}
window.onload=loop;
</script>
</head>
<!--<body class="in-frame" onload="UpdateStatus()">-->
<body class="in-frame" >
目前还没有实时在两个页面中刷新的方式。能否描述一下你的应用,为什么需要用到这种方式呢?
比如说两个用户同时访问该web server,其中一个用户在其客户端进行了某个操作,引起状态变化,在另一个用户的客户端,状态的变化得不到自动更新。
其实,这个问题的关键是怎么实现页面数据的自动实时更新。官方CC3100 SDK中的http server的Demo太简单,没有实现数据自动刷新。我想着可能需要自己写JS代码来实现,我不熟悉JS语言,所以想看看有没有什么例程可以直接参考。
这个倒没有,你可以去网上找一下例程看看,就是JS刷新网页的。
好的。谢谢!