微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI WIFI设计交流 > CC3100 http server 数据自动刷新的问题

CC3100 http server 数据自动刷新的问题

时间:10-02 整理:3721RD 点击:

我在做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刷新网页的。

好的。谢谢!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top