Ajax與jQuery、json

來源:互聯網
上載者:User

標籤:

一、Ajax簡介

Ajax(Asynchronous JavaScript and Xml)--非同步重新整理技術

Ajax的關鍵元素包括以下內容:

① JavaScript語言:Ajax技術的主要開發語言。

② XML/JSON/HTML等:用來封裝請求或響應的資料格式

③ DOM(文件物件模型):通過DOM屬性或方法修改頁面元素,實現頁面局部重新整理

④ CSS:改變樣式,美化頁面效果,提升使用者體驗度

⑤ Ajax引擎:即XMLHttpRequest對象,以非同步方式在用戶端與伺服器之間傳遞資料。

二、Ajax工作流程

三、常用方法:

四、常用屬性

五、實現思路:

1、鎖定使用者名稱文字框,註冊onblur事件

2、建立XMLHttpRequest對象。通過window.XMLHttpRequest的傳回值判斷建立XMLHttpRequest對象的方式

3、設定回呼函數。通過onreadystatechange屬性設定回呼函數,其中回呼函數需要自訂

4、初始化XMLHttpRequest對象。通過open()佈建要求的發送方式和路徑

5、發送請求

準備簡單頁面:

 <body>    使用者名稱:<input type="text" name="txtName" id="txtName"/> <span id="msg"></span><br/><br/>   密碼: <input type="password" name="txtPwd"/>  </body>

建立Servlet:回送資訊

 

public void doPost(HttpServletRequest request, HttpServletResponse response)            throws ServletException, IOException {        String uname = request.getParameter("uname");        if (uname.equals("admin")) {            //使用者已經被註冊了            //回送 資訊            response.getWriter().write("OK");                    }else {            response.getWriter().write("NO");        }

註:

步驟一:通過window。XMLHttpRequest的傳回值判斷當前瀏覽器建立XMLHttpRequest對象的方式。如果為true,說明是新版本IE或其他瀏覽器,可使用new XMLHttpRequest()方式建立XMLHttpRequest對象;如果為false,說明是老版本IE瀏覽器,需使用new ActiveXObject("Microsoft.XMLHttp")的方式建立XMLHttpRequest對象

步驟二:通過XMLHttpRequest對象的onreadystatechange屬性設定回呼函數,用於當請求成功後接收伺服器端返回的資料

步驟三:通過XMLHttpRequest對象的open()方法,傳入參數完成初始化XMLHttpRequest對象的工作。第一個參數為Http請求方式,選擇發送Httpget 請求,因此參數為get。第二個參數為要發送的url請求路徑,將要發送的資料附加到url路徑後面

步驟四:調用XMLHttpRequest對象的send()方法,參數為要發送到伺服器端的資料,因為採用"get"方式請求時,參數已經附加到url路徑後,所以直接設定為null。如果send()方法不設值,在不同的瀏覽器下可能存在不相容問題。

執行完畢後,非同步請求的發送過程就結束!

註:使用Ajax發送Post請求需注意要設定setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

      採用Get方式發送請求時,通常會將需要攜帶的參數附加在URL路徑後面一起發送,所以send()不需要傳遞參數,設定為null即可

 六 、使用jQuery實現Ajax 

jQuery常用的Ajax方法

文法:$.ajax([settings]);

 常用屬性參數:

 

 

常用函數參數:

 

 使用$.ajax()驗證使用者名稱--使用$.ajax() 實現非同步互動

註:需引jquery-1.11.1.js庫

<html>  <head>    <base href="<%=basePath%>">        <title>My JSP ‘index.jsp‘ starting page</title>    <script type="text/javascript" src="js/jquery-1.11.1.js"></script>    <script type="text/javascript">        $(function(){    var dom=$("#txtName");    dom.blur(function() {        myjquery();    });    });        function myjquery(){    var dom=$("#txtName");    $.ajax({    url:‘<%=path%>/servlet/CheckUserServlet‘,    type:‘post‘,    data:{uname:dom.val()},    success:function(result){    alert(result);    }            });                }        </script>      </head>    <body>  <h2>使用jQuery實現Ajax</h2>    使用者名稱:<input type="text" name="txtName" id="txtName"/> <span id="msg"></span><br/><br/>   密碼: <input type="password" name="txtPwd"/>  </body>

實現效果:

 若輸入的非admin,即可註冊,否則無法註冊

若是post請求,調試效果如下:

七、JSON簡介

 JavaScript Object Notation是一種輕量級的資料交換格式

 ①定義Json對象

文法:var json對象={key:value,key:value,...}

② 定義Json數組

文法:var json數組=[value,value,...] 

<script type="text/javascript">    var data={"firstName":"Brett","lastName":"hehe"};    $.each(data,function(i,dom){    alert(dom);    }); /* var data={    "people":[        {"firstName":"Brett","lastName":"McLaughlin","email":"aaaa"},        {"firstName":"Jason","lastName":"Hunter","email":"bbbb"},        {"firstName":"Elliotte","lastName":"Harold","email":"cccc"}    ]};$.each(data.people,function(i,dom){    alert(dom.firstName);    });     */        </script>    

那麼即可拿到每個dom對象:

 

 

Ajax與jQuery、json

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.