zoukankan      html  css  js  c++  java
  • Nodejs之Ajax

    AJAX开发框架

    AJAX实质上也是遵循B/S模式,所以这个框架基本的流程是:

    对象初始化
    发送请求
    服务器接收
    服务器返回
    客户端接收
    修改客户端页面内容。

    只不过这个过程是异步的。

    AJAX开发步骤 

    1.客户端事件发生,调用Javacsript函数编写的事件处理程序。

    2.在事件处理程序中创建XMLHttpRequest对象

    3.配置XMLHttpRequest对象

    4.XMLHttpRequest对象发送一个异步HTTP请求到服务器

    5.服务器程序接收请求,处理请求,返回响应

    6.XMLHttpRequest对象调用callback()函数并处理结果

    7.更新HTML 

    创建XMLHttpRequest对象的方法

    <!DOCTYPE html>
    <html>
    <head lang="en">
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
    <label>账号:</label>
    <input type="text"/>
    <label>密码:</label>
    <input type="password"/>
    <button onclick="sendMessage()">注册</button>
    
    <script>
        //1.在客户端中用JS调用事件处理程序
        function sendMessage(){
            //2.创建XMLHttpRequest对象
            var xhr;
            if(window.XMLHttpRequest){//js Ajax兼容
                xhr=new XMLHttpRequest();
            }else{
                xhr=new ActiveXObject("Microsoft.XMLHTTP");//IE
            }
            //3.打开连接
            //method请求类型(get、post);URL异步的请求地址;同步或者异步执行配置.这只是配置请求,并没有发起请求
            xhr.open("method","url","同步或者异步执行配置");
            //6 请求完成后,响应后所执行的函数;也就是响应数据给这个函数
            xhr.onreadystatechange=function(){
                  //7 更新html数据
            };
            //4 发送请求;如果method是get方法,则send内配置NUll;如果是post方法,则send内配置的是请求的参数
            xhr.send(null);
        }
    </script>
    </body>
    </html>
    

      在JS第一次执行的时候,

    xhr.onreadystatechange=function(){
    //7 更新html数据
    };这个函数并不会执行,等响应回来后才会执行,发生了一个非阻塞的请求,这个函数叫做回调函数callback()函数。

    完全写好后,代码为:

    <!DOCTYPE html>
    <html>
    <head lang="en">
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
    <label>账号:</label>
    <input type="text"/>
    <label>密码:</label>
    <input type="password"/>
    <button onclick="sendMessage()">注册</button>
    
    <script>
        //1.在客户端中用JS调用事件处理程序
        function sendMessage(){
            //2.创建XMLHttpRequest对象
            var xhr,a;
            if(window.XMLHttpRequest){//js Ajax兼容
                xhr=new XMLHttpRequest();
            }else{
                xhr=new ActiveXObject("Microsoft.XMLHTTP");//IE
            }
            //3.打开连接
            //method请求类型(get、post);URL异步的请求地址;同步或者异步执行配置.这只是配置请求,并没有发起请求
            xhr.open("get","reg.do",true);//true代表异步 false代表同步
            //6 请求完成后,响应后所执行的函数;也就是响应数据给这个函数
            xhr.onreadystatechange=function(){
                  //7 更新html数据
                a=xhr.responseText;//**会把从app.js中回来的数据放在这里
                if(xhr.readyState==4&&xhr.status==200){//添加了这个的属性状态后,打印a就只有一次了
                    console.log(a)
                }
    
            };
            //4 发送请求;如果method是get方法,则send内配置NUll;如果是post方法,则send内配置的是请求的参数
            xhr.send(null);
    //        console.log(a);//这里的a是undefined,因为没有执行回调函数,先执行了打印a,所以就是undefined
        }
    </script>
    </body>
    </html>
    

      

    
    
    
  • 相关阅读:
    《android深入探索》第七章心得
    《android深入探索》第六章心得
    《android深入探索》第五章心得
    《android深入探索》第四章心得
    《android深入探索》第三章心得
    《android深入探索》第二章心得
    嵌入式Linux的调试技术
    硬件抽象层:HAL
    让开发板发出声音:蜂鸣器驱动
    LED将为我闪烁:控制发光二极管
  • 原文地址:https://www.cnblogs.com/potato-lee/p/6245559.html
Copyright © 2011-2022 走看看