首页 > 代码库 > ajax

ajax

Ajax介绍:

  w3school链接:http://www.w3school.com.cn/xmldom/dom_http.asp

  AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。

  AJAX = 异步 JavaScript和XML(标准通用标记语言的子集)。

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

  使用ajax目的是为了提高用户的感受,带来用户体验改变,是web优化一种主要手段

Ajax是什么?

  传统web交互模型:浏览器直接将请求发送给服务器,服务器返回响应,直接发给浏览器,
      Ajax交互模型:浏览器首先将请求发送 Ajax引擎(以XMLHttpRequest为核心),AJax引擎再将请求发送给服务器;

            服务器回送响应先发给Ajax引擎,再由引擎传给浏览器显示

 

  1、同步交互模式,客户端提交请求,等待,在响应回到客户端前,客户端无法进行其他操作

  2、异步交互模型,客户端将请求提交给Ajax引擎,客户端可以继续操作,由Ajax引擎来完成与服务武器端通信,当响应回来后,Ajax引擎会更新客户页面,在客户端提交请求后,用户可以继续操作,而无需等待 。

 

Ajax快速入门:

   1. 创建XMLHttpRequest对象

      var xmlhttp;

      if (window.XMLHttpRequest) {

         xmlhttp=new XMLHttpRequest();

      } else if (window.ActiveXObject) {

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

      }

 

  2.注册回调函数

      xmlhttp.onreadystatechange=function(){ };

 

  3.使用open方法建立与服务器的连接:只是用于设置请求方式 以及url,它不发送请求.

      xmlhttp.open(method, url, async, username, password); //请求法师,资源路径,后面3个可以省略

      注:GET请求的参数一般加在url后面

 

  4.向服务器端发送数据:它是用于发送请求的。

      xmlhttp.send(null);

      // null代表没有参数 

       // 如果有参数可以写成:"username=tom&password=123"  (一般写POST请求的参数)

 

  注意:如果是post请求方式,还需要设置一个http请求头。
            xmlhttp.setRequestHeader("content-type","application/x-www-form-urlencoded");

    例:

      xmlhttp.open(method, url);

      xmlhttp.setRequestHeader("content-type","application/x-www-form-urlencoded");

      xmlhttp.send(null);

 

  5.在回调函数中处理数据

    (1) XMLHttpRequest对象属性 : readyState

        它代表的是XMLHttpRequest对象的状态。               
                    0.代表XMLHttpRequest对象创建
                    1.open操作
                    2.send操作
                    3.接收到了响应数据,但是只有响应头,正文还没有接收。
                    4.所有http响应接收完成

    (2)XMLHttpRequest对象属性 : status

        由服务器返回的 HTTP 状态代码,如 200 表示成功

 

    (3)通过XMLHttpRequest对象获取数据

        1.responseText

               2.responseXML

 

 

JSON插件:

    是一种javascript轻量级数据交互格式,主要应用于Ajax编程。在java中,可以通过jsonlib插件,在java对象与json之间做转换。

 

 

 

 

案例:

 

1.验证用户名是否可以使用

 

<html>  <head>    <title>ajax验证用户名是否可用</title>        <script type="text/javascript">                                window.onload=function(){                                    var reg = document.getElementById("username");                                        reg.onblur=function(){                        //获取XMLHttpRequest对象                        var xmlhttp;                        if (window.XMLHttpRequest){                          xmlhttp=new XMLHttpRequest();                        }else if (window.ActiveXObject){                          xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");                        }                                                xmlhttp.onreadystatechange=function(){                            if(xmlhttp.readyState==4 && xmlhttp.status==200){                                document.getElementById("myspan").innerHTML=xmlhttp.responseText;                            }                        };                                                xmlhttp.open("GET", "${ pageContext.request.contextPath }/registerservlet?username="+reg.value);                        xmlhttp.send(null);                    };                };    </script>  </head>    <body>          <input type="text" name="username" id="username" ><span id="myspan"></span>          <br>          <input type="button" value="http://www.mamicode.com/注册">  </body></html>

 

public void doGet(HttpServletRequest request, HttpServletResponse response)            throws ServletException, IOException {        response.setContentType("text/html;charset=utf-8");
String username
= request.getParameter("username");
if("lihaotian".equals(username)){ response.getWriter().print("<font color=‘red‘>用户名已被注册</font>"); }else{ response.getWriter().print("<font color=‘blue‘>用户名可以使用</font>"); } }

 

 

 

2.显示商品信息  

  

 


               

      

 

      

 

 

 

  

    

      

 

ajax