• 用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通信,开发一个较为完善的站内消息系统实在易如反掌。'
  • 相关阅读:
    Redis
    Zookeeper的安装配置及基本开发
    【Unity Shader】新书封面 — Low Polygon风格的渲染
    Hive基本原理及环境搭建
    Hadoop开发环境搭建
    java常用排序算法
    企业人事管理系统项目拾金
    Linux27:分区、格式化与修复
    Linux26:查询磁盘和监控系统资源
    Linux25:文件系统特点与XFS文件系统
  • 原文地址:https://www.cnblogs.com/newwind521/p/699719.html
Copyright © 2020-2023  润新知