zoukankan      html  css  js  c++  java
  • 用XMLHTTP实现无刷新的与server通信

    XMLHTTP的用处很多,这里只说我们需要的,就是无刷新的与server通信,看这段代码:

    代码:
    <script language="javascript">
    xml = new ActiveXObject("Microsoft.XMLHTTP");
    var post=" ";//构造要携带的数据
    xml.open("POST","http://localhost:7001/TestWL/index.jsp",false);//使用POST方法打开一个到服务器的连接,以异步方式通信
    xml.setrequestheader("content-length",post.length);
    xml.setrequestheader("content-type","application/x-www-form-urlencoded");
    xml.send(post);//发送数据
    var res = xml.responseText;//接收服务器返回的数据
    document.write(res);
    </script>

    豁然开朗,这段代码就是打开一个HTTP连接,以标准的HTTP格式传递数据,如果你喜欢,可以用XML的格式来传递。更改一下xml对象的构造方式就可以兼容Mozilla和Netscape。下面来写一个轮询,每隔一段时间刷新一次用户列表,当然,是不需要刷新页面的:
    代码:
    <html>
    <head><title>探测器</title>
    <script language="javascript">
    function detect()
    {
    xml = new ActiveXObject("Microsoft.XMLHTTP");
    var post=" ";//构造要携带的数据
    xml.open("POST","http://localhost:7001/TestWL/index.jsp",false);//使用POST方法打开一个到服务器的连接,以异步方式通信
    xml.setrequestheader("content-length",post.length);
    xml.setrequestheader("content-type","application/x-www-form-urlencoded");
    xml.send(post);//发送数据
    var res = xml.responseText;//接收服务器返回的数据
    list.innerText=res;
    setTimeout(“detect()”,5000);//每隔5秒钟轮询一次
    }
    </script>
    <body onload=”detect()”>
    <a id=”list”></a>
    </body>
    </html>

    这样的通信方式数据量很小,不用重新传递整个页面,5秒钟轮一次,普通PC也能承受较大的在线数。构造一个探测器来监听在线列表和消息,效果是很好的,即使你的客户坐在电脑前袖手旁观,键鼠都不碰一下,也能保证数据即时传递,页面也不会发生跳转和刷新。

    Session监听加上XMLHTTP通信,开发一个较为完善的站内消息系统实在易如反掌。'
  • 相关阅读:
    Java HashMap HashCode
    JS 笔记---持续更新
    彻底弄懂 JavaScript 执行机制
    几条jQuery代码片段助力Web开发效率提升
    原生JS与jQuery操作DOM对比
    jQuery->JavaScript一览表
    Jquery介绍
    canvas雪花
    canvas绘制多边形
    兼容性的事件处理程序
  • 原文地址:https://www.cnblogs.com/newwind521/p/699719.html
Copyright © 2011-2022 走看看