当前位置: 移动技术网 > IT编程>开发语言>.net > ASP.NET之AJAX系列(三)

ASP.NET之AJAX系列(三)

2018年04月21日  | 移动技术网IT编程  | 我要评论

南昌小刀,岳程程,爱拼网娱乐城

我们通过前两篇文章的学习,已经大致掌握了Ajax的实现方法,同时也可以对比出两种方式的优劣。但是我们还是没有搞清楚真正的ajax的实现原理,以及最原始的,未经过封装的ajax是什么样的,今天我们一起来探索这些之前不了解的地方。

 

  首先在上一篇也提到过,Ajax是异步的Javascript和XML,那么聪明的你应该已经猜到,js脚本是必不可少的。我们在这里先引入一个浏览器对象:XMLHttpRequest,可能大家对这个对象比较陌生,那么我们就先从它的属性开始了解。它主要有三个属性:onreadystatechange 属性、readyState 属性和responseText 属性,从名字上我们大致可以看出,第一个属性,也就是onreadystatechange 是用来在状态变更的时候处理服务器响应的函数,第二个属性是保存服务器响应的状态(如常见的200 OK,404 Not Found等等),第三个属性是获取服务器响应后的信息。

 

  介绍完三个属性之后,我们开始进入正题,和所有的过程一样,我们需要先初始化XMLHttpRequest这个对象,但是由于浏览器的问题,在不同的浏览器初始化时,需要进行不同的方式:

 

  

 

 

 <script type="text/javascript">

        var xmlhttp;

        function checkUser() {

            xmlhttp = null;

            var Name = document.getElementById("txtId").value;

 

            if (window.XMLHttpRequest) {

                xmlhttp = new XMLHttpRequest();

            }//这里适用于火狐,谷歌还有高版本IE浏览器

            else if (window.ActiveXObject) {

                xmlhttp = new ActiveXObject("Microsoft.XMLHttp");

            }//这里适用于低版本IE,如IE4,IE5等等

            xmlhttp.open("GET", "Handler1.ashx?name=" + Name, true);

            xmlhttp.onreadystatechange = function () {

                if (xmlhttp.readyState == 4) {

                    if (xmlhttp.status == 200) {

                        document.getElementById("lblShow").innerHTML = xmlhttp.responseText;

                    }

                }

            }

            xmlhttp.send(null);

        }    

    </script>

 

  从代码中我们再一次验证了微软当年的“不走寻常路”,说句题外话,做了这么久的B/S,发现兼容性真是个头疼的问题,尤其是IE,每个版本之间兼容性都不一致,写Js的时候苦不堪言,推荐使用JQuery,它的兼容性非!常!好!在初始化对象之后,我们便开始了发送请求之旅,这次我们依然是向ashx提交并进行处理。xmlhttp.open("GET", "Handler1.ashx?name=" + Name, true);这句代码中有3个参数,第一个参数用于指定get提交或是post提交,这里需要注意大写;第二个参数是要提交的url,第三个参数指定是否为异步模式。接下来我们需要处理服务端状态改变后的函数,先判断服务器响应的状态信息:0为请求未初始化(在调用 open() 之前),1为请求已提出(调用 send() 之前),2为请求已发送(这里通常可以从响应得到内容头部),3为请求处理中(响应中通常有部分数据可用,但是服务器还没有完成响应),4为请求已完成(可以访问服务器响应并使用它)。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网