异步发送添加请求的客户端实现

在用户单击“添加RSS”按钮后,为了提高运行速度,本例将使用XMLHttpRequest实现数据的提交工作,异步功能实现的原理如图12-7所示。

异步发送添加请求的客户端实现

  图12-7 异步提交的原理图

  实现的步骤如下:

  (1)打开Default.aspx页。

  (2)为“添加RSS”按钮添加click事件,事件调用方法“addrss”。

  (3)在head元素内添加脚本代码,方法“addrss”的代码如清单12-4所示。其中需要创建一个XMLHttpRequest对象。

  代码清单12-4 添加按钮调用的方法

    <script type="text/javascript">
    var xmlhttp;
    function createXMLHttp()
    {
        //未考虑除IE外其他浏览器-创建异步对象
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    function addrss()
    {
       createXMLHttp();
        //判断异步对象状态的方法
        xmlhttp.onreadystatechange=statechange;
        //获取添加的RSS属性
var name=document.getElementById("txtRssName").value;
        var url=document.getElementById("txtRssUrl").value;
        //加载服务器页并发送数据请求
        xmlhttp.open("GET","addRssNamePage.aspx?name="+escape(name) +"&url="+escape(url),true);
        xmlhttp.send(null);
  }
  </script>

  注意:传递参数时,如果参数为中文,必须使用escape方法包装。

  (4)在创建XMLHttpRequest对象的过程中,使用方法“statechange”判断事件的状态,此方法的设计代码如清单12-5所示。主要目的:是当请求 成功 完成后,调用方法“handleStr”实现页面的局部刷新。

  代码清单12-5 判断请求状态的方法

    function statechange()
    {
     //如果请求已经完成
     if(xmlhttp.readystate==4)
     {
      //判断请求是否成功返回
      if(xmlhttp.status==200)
      {
        //返回的是字符串,进行处理后显示在客户端
        handleStr(xmlhttp.responseText);
      }
     }

  (5)设计实现局部刷新的方法,代码如清单12-6所示。

  代码清单12-6 更新频道列表的方法

    function handleStr(list)
    {
      //获取频道列表所在的div
      var oldcontent=document.getElementById("namelist").innerHTML;
      //更新div中的内容
      var newcontent=oldcontent+list;
      //显示新的div
      document.getElementById("namelist").innerHTML=newcontent;
    }

  以上是客户端需要实现的技术,那么当XMLHttpRequest对象请求服务器处理时,应该怎么在服务器端实现处理功能呢?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值