异步登录

     1、异步的概念

        异步也成为AJAX,即Asynchronous JavaScript And XML,表示异步的JavaScript和XML。异步不是一种编程语言而是一种应用技术,实现异步功能的代码要写<Script>标签中。在学习异步之前需要对HTML

        、CSS、JavaScript DOM的知识有一定了解。

     2、DOM操作简介

        DOM全称为“文档对象模型”,因为网页是由HTML的节点标签组成,为了能灵活操作页面上的元素标签,相关组织指定了DOM标准,该标准中提供了很多方法可以灵活操作页面上的元素标签,常用方法如下:

         (1)、常用的DOM方法

         getElementById(id):获取带有指定id的节点元素。

         appendChild(node):插入新的子节点元素。

         removeChild(node):删除子节点元素。

         getElementByTagName():获取带有标签名称的元素节点。

         getElementByClassName():获取带有指定样式名的元素节点。

         (2)、常用DOM属性

         innerHTML:获取节点元素的文本值。

         parentNode:获取节点元素的父节点。

         childNodes:获取节点元素的子节点。

         attributes:获取节点元素的属性节点。

     3、异步Get/Post请求

        在异步请求方式中也分为Get和Post请求,Get请求是将数据放在请求的Url中,而Post请求时将数据放到请求报文中,其中,使用异步方式发送get请求的具体代码:

        xmlhttp.open("GET","demo_get.aspx",true);

        xmlhttp.send();

        send()表示请求开始发送

        xmlhttp.open("POST","demo_post.aspx",true);

        xmlhttp.send();


     <script type="text/javascript">

        window. {

            var btnLogin = document.getElementById("btnLogin");

            btnLogin.onclick = function() {

                //发送异步请求

                var xhr;

                if (XMLHttpRequest) {

                    //创建异步对象

                    xhr = new XMLHttpRequest();

                } else {

                    xhr = new ActiveXObject("Microsoft.XMLHTTP");

                }

                //拿到用户名密码

                var txtName = document.getElementById("txtName");

                var txtPwd = document.getElementById("txtPwd");


                //由于是get请求,所以要将数据拼接到url上

                var strUrl = "ProcessLogin.ashx?name=" + txtName.value + "&pwd=" + txtPwd.value;


                //提交到后台地址,是否异步

                xhr.open("GET", strUrl, true);

                xhr.send();


                //上面发送了异步请求,然后监控页面状态

                xhr.onreadystatechange = function() {

                    if (xhr.readyState == 4 && xhr.status == 200) {

                        if (xhr.responseText == "OK") {

                            window.location.href = "main.aspx";

                        } else {

                            //如果错误就直接弹出错误警告

                            alert(xhr.responseText);

                        }

                    }

                };

            };

        }

    </script>

    在上述代码中,"xhr = new XMLHttpRequest();"和"xhr = new ActiveXObject("Microsoft.XMLHTTP");" 主要用于兼容性的判断,有些IE浏览器的版本只支持ActiveXObject对象,并且只有IE才支持ActiveXObject对象。

      

    一般处理程序

    public class ProcessLogin : IHttpHandler

    {


        public void ProcessRequest(HttpContext context)

        {

            context.Response.ContentType = "text/plain";


            //获取用户名密码

            string txtName = context.Request["name"];

            string txtPwd = context.Request["pwd"];



            if (txtName == "bjxingch" && txtPwd == "123456")

            {

                context.Response.Write("OK");

            }

            else

            {

                context.Response.Write("用户名密码错误");

            }

        }


        public bool IsReusable

        {

            get

            {

                return false;

            }

        }

    }


    将异步方法封装在myAjax方法中

    <script type="text/javascript">

        window.onload = function() {

            var btnLogin = document.getElementById("btnLogin");

            btnLogin.onclick = function() {


                //拿到用户名密码

                var txtName = document.getElementById("txtName");

                var txtPwd = document.getElementById("txtPwd");


                //由于是get请求,所以要将数据拼接到url上

                var strUrl = "ProcessLogin.ashx?name=" + txtName.value + "&pwd=" + txtPwd.value;

                

                //调用封装的异步方法myAjax

                myAjax("get", strUrl, function(data) {

                    if (data == "OK") {

                        window.location.href = "main.aspx";

                    } else {

                        //如果错误就直接弹出错误警告

                        alert(xhr.responseText);

                    }

                });

            };

        };

        

        //封装后的方法

        function myAjax(httpMethod, url, callback) {

            //发送异步请求

            var xhr;

            if (XMLHttpRequest) {

                //创建异步对象

                xhr = new XMLHttpRequest();

            } else {

                xhr = new ActiveXObject("Microsoft.XMLHTTP");

            }

            

            //提交到后台地址,是否异步

            xhr.open(httpMethod, url, true);

            xhr.send();


            //上面发送了异步请求,然后监控页面状态

            xhr.onreadystatechange = function () {

                if (xhr.readyState == 4 && xhr.status == 200) {

                    if (xhr.responseText == "OK") {

                        callback(xhr.responseText);

                    }

                }

            };

        }

    </script>


你可能感兴趣的:(编程语言,标签,网页,模型,应用技术)