zoukankan      html  css  js  c++  java
  • Ajax总结

    一、Ajax概述

    1.什么是同步,什么是异步

    同步现象:客户端发送请求到服务器端,当服务器返回响应之前,客户端都处于等待 卡死状态

    异步现象:客户端发送请求到服务器端,无论服务器是否返回响应,客户端都可以随 意做其他事情,不会被卡死

    2.Ajax的运行原理

    页面发起请求,会将请求发送给浏览器内核中的Ajax引擎,Ajax引擎会提交请求到 服务器端,在这段时间里,客户端可以任意进行任意操作,直到服务器端将数据返回 Ajax引擎后,会触发你设置的事件,从而执行自定义的js逻辑代码完成某种页面1 功能。

    二、js原生的Ajax技术(了解)

    js原生的Ajax其实就是围绕浏览器内内置的Ajax引擎对象进行学习的,要使用js原 生的Ajax完成异步操作,有如下几个步骤:

    1)创建Ajax引擎对象

    2)Ajax引擎对象绑定监听(监听服务器已将数据响应给引擎)

    3)绑定提交地址

    4)发送请求

    5)接受响应数据

    //异步get提交
    function f1(){
    //1)创建Ajax引擎对象 var xmlhttp=new XMLHttpRequest(); //2)为Ajax引擎对象绑定监听(监听服务器已将数据响应给引擎) xmlhttp.onreadystatechange=function(){ //5)接受响应数据 var res=xmlhttp.responseText; if(xmlhttp.readyState==4&&xmlhttp.status==200){ document.getElementById("span1").innerHTML=res; } } //3)绑定提交地址(请求方式、请求地址、是否异步) xmlhttp.open("GET", "${pageContext.request.contextPath}/AjaxServlet", true) //4)发送请求 xmlhttp.send(); }
    //异步post提交
        function f2(){
            //1)创建Ajax引擎对象
            var xmlhttp=new XMLHttpRequest();
            //2)为Ajax引擎对象绑定监听(监听服务器已将数据响应给引擎)
            xmlhttp.onreadystatechange=function(){
                //5)接受响应数据
                var res=xmlhttp.responseText;
                if(xmlhttp.readyState==4&&xmlhttp.status==200){
                    alert(res);
                }
            }
            //3)绑定提交地址(请求方式、请求地址、是否异步)
            xmlhttp.open("POST", "${pageContext.request.contextPath}/AjaxServlet", true)    //true(异步) false(同步)
            //4)发送请求
            xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
            xmlhttp.send("name=shangsan");
        }
        //同步get提交
        function f3(){
            //1)创建Ajax引擎对象
            var xmlhttp=new XMLHttpRequest();
            //2)为Ajax引擎对象绑定监听(监听服务器已将数据响应给引擎)
            xmlhttp.onreadystatechange=function(){
                //5)接受响应数据
                var res=xmlhttp.responseText;
                if(xmlhttp.readyState==4&&xmlhttp.status==200){
                    document.getElementById("span2").innerHTML=res;
                }
            }
            //3)绑定提交地址(请求方式、请求地址、是否异步)
            xmlhttp.open("GET", "${pageContext.request.contextPath}/AjaxServlet", false)
            //4)发送请求
            xmlhttp.send();
        }

    总结:同步页面上不能在进行别的操作

    AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。

    例子:网页的验证登陆(防止自动刷新)

    AJAX = 异步 JavaScript 和 XML。

    AJAX 是一种用于创建快速动态网页的技术。

    通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。

    传统的网页(不使用 AJAX)如果需要更新内容,必需重载整个网页面。

    实例:

    修改内容:

    复制代码
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <script>
    function loadXMLDoc()
    {
        var xmlhttp;
        if (window.XMLHttpRequest)
        {
            //  IE7+, Firefox, Chrome, Opera, Safari 浏览器执行代码
            xmlhttp=new XMLHttpRequest();
        }
        else
        {
            // IE6, IE5 浏览器执行代码
            xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
        xmlhttp.onreadystatechange=function()
        {
            if (xmlhttp.readyState==4 && xmlhttp.status==200)
            {
                document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
            }
        }
        xmlhttp.open("GET","/try/ajax/ajax_info.txt",true);
        xmlhttp.send();
    }
    </script>
    </head>
    <body>
    
    <div id="myDiv"><h2>使用 AJAX 修改该文本内容</h2></div>
    <button type="button" onclick="loadXMLDoc()">修改内容</button>
    
    </body>
    </html>
    复制代码

    三、jquery的Ajax技术

    1.get方式提交

    function f1(){
            $.get("${pageContext.request.contextPath }/Ajax2Servlet",   //绑定提交地址
                    {"name":"zhangsan","age":18},                       //提交数据
                    function(data){                                     //回调函数--接收相应数据(data)
                    alert(data.name);
                },
                "json")
        }

    2.post方式提交

    function f2(){
            $.post("${pageContext.request.contextPath }/Ajax2Servlet",
                    {"name":"zhangsan","age":18},
                    function(data){
                    alert(data.name);
                },
                "json")
        }

    3.ajax方式

    function f3(){
            $.ajax({
                url:"${pageContext.request.contextPath }/Ajax2Servlet",
                async:true,
                type:"POST",
                data:{"name":"lucy","age":18},
                success:function(date){
                    alert(date.name);
                },
                error:function(){
                    alert("请求失败");
                },
                dataType:"json"
            })
        }
  • 相关阅读:
    oracle的网络服务名和监听程序
    ArcGIS 产品许可模型
    老鸟对菜鸟的一些建议(转)
    ajax简介(转载)
    dim redim
    投影选择的一般原则
    *.prj文件
    cup性能对比感受
    treeview 数据库 递归
    简论两句话
  • 原文地址:https://www.cnblogs.com/-dashu/p/9244422.html
Copyright © 2011-2022 走看看