jquery對ajax做了很多的封裝,使得ajax使用起來非常的方便,省去了很多代碼。 1. 前台代碼
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Json</title><!-- 引入jQuery庫 --><script type="text/javascript" src="js/jquery.js"></script></head><body> <br> <br> <input type="button" value="JsonStr" onclick="jsonStr()" /> <br> <br> <table> <tr> <td>username</td> <td><input id="username"></td> </tr> <tr> <td>id</td> <td><input id="id"></td> </tr> </table> <br> <br> <br> <input type="button" value="JsonArr" onclick="jsonArr()" /> <br> <br> <table border="1" bordercolor="red"> <caption>Json Array</caption> <thead> <tr> <th>Username</th> <th>Id</th> </tr> </thead> <tbody id="tb"> </tbody> </table></body><script type="text/javascript"> // json字串處理方法 function jsonStr() { $.ajax({ url : "jsonStr", dataType : "json", success : function(data) { $("#username").val(data.name); $("#id").val(data.id); } }); } // json數組處理方法 function jsonArr() { $.ajax({ url : "jsonArr", dataType : "json", success : function(data) { // 建立程式碼片段,用於存放表格行 var oFragment = document.createDocumentFragment(); // 根據json數組長度,產生行資料 for (var i = 0; i < data.length; i++) { var trObj = document.createElement("tr"); trObj.innerHTML = "<td>" + data[i].name + "</td><td>" + data[i].id + "</td>"; oFragment.appendChild(trObj); } // 將行資料添加在表格的tBody部分 $("#tb").html(oFragment); } }); }</script></html>
2. 代碼講解
1 使用jQuery的第一步,便是引入jQuery庫,這裡我將jQuery庫放在了項目根目錄下面的js檔案夾下面。
<!-- 引入jQuery庫 --><script type="text/JavaScript" src="js/jquery.js"></script>
2 json字串處理方法
// json字串處理方法 function jsonStr() { $.ajax({ url: "jsonStr", dataType: "json", success: function(data) { $("#username").val(data.name); $("#id").val(data.id); } }); }
3 jQuery中,我們無需再去new XMLHttpRequest(),也無需再去關注瀏覽器間的相容問題,這裡jQuery已經幫我們處理好了,位元組使用 $.ajax 就可以了; 在回呼函數中,老式的寫法中,需要寫:
xhr.onreadystatechange = function(data) { if (xhr.readyState == 4 && xhr.status == 200) { .... }
但是 jQuery 的寫法中,一個 success: function(data) {...}就可以了,是否簡便了許多呢。附上老式的ajax請求代碼
function jsonStr() { /** 老式寫法 var xhr = new XMLHttpRequest(); xhr.open("get", "jsonStr"); xhr.onreadystatechange = function(data) { if (xhr.readyState == 4 && xhr.status == 200) { // 將json字串轉換為json對象 var obj = eval("(" + data.target.responseText + ")"); document.getElementById("username").value = obj.name; document.getElementById("id").value = obj.id; } }; xhr.send(null); */ $.ajax({ url: "jsonStr", dataType: "json", success: function(data) { $("#username").val(data.name); $("#id").val(data.id); } }); }
轉:初識jQuery的ajax