AJAX Asynchronous Javascript And XML"(非同步 JavaScript 和 XML),是指一種創建互動式網頁應用的網頁開發技術。通過在後臺與伺服器進行少量數據交換,Ajax 可以使網頁實現非同步更新。意味著可以在不重新載入整個網頁的情況下,對網頁的某部分進行更新。傳統的 ...
AJAX
Asynchronous Javascript And XML"(非同步 JavaScript 和 XML),是指一種創建互動式網頁應用的網頁開發技術。通過在後臺與伺服器進行少量數據交換,Ajax 可以使網頁實現非同步更新。意味著可以在不重新載入整個網頁的情況下,對網頁的某部分進行更新。傳統的網頁(不使用 Ajax)如果需要更新內容,必須重載整個網頁頁面。
AJAX原理分析
1. AJAX引擎會在不刷新瀏覽器地址欄的情況下,發送非同步請求
使用JavaScript獲得瀏覽器內置的AJAX引擎(XMLHttpRequest對象)。
使用js確定請求路徑和請求參數。
AJAX引擎對象根據請求路徑和請求參數進行發送請求。
2. 伺服器接收到ajax引擎的請求進行處理
伺服器獲得請求參數數據
伺服器處理請求業務(調用業務層代碼)
伺服器響應數據給ajax引擎
3. AJAX引擎獲得伺服器響應的數據,通過執行JavaScript的回調函數將數據更新到瀏覽器頁面具體位置。
通過設置給AJAX引擎的回調函數獲得伺服器響應的數據
使用JavaScript在指定的位置,顯示響應數據,從而局部修改頁面的數據,達到局部刷新目的。
jQuery框架的AJAX
AJAX請求
$.ajax({key:value,key:value})
常用屬性:
url 請求的伺服器端url地址
async (預設: true) 預設設置下,所有請求均為非同步請求。如果需要發送同步請求,請將此選項設置為 false
data 發送到伺服器的數據,可以是鍵值對形式,也可以是js對象形式
type (預設: "GET") 請求方式 ("POST" 或 "GET"), 預設為 "GET"
dataType 預期的返回數據的類型,取值可以是 xml, html, script, json, text, _defaul等
success 請求成功後的回調函數
error 請求失敗時調用此函數
GET請求
語法:$.get(url, [data], [callback], [type])
常用屬性:
url:待載入頁面的URL地址
data:待發送 Key/value 參數。
callback:載入成功時回調函數。
type:返回內容格式,xml, html, script, json, text, _default。
POST請求
語法:$.post(url, [data], [callback], [type])
常用屬性:
url:待載入頁面的URL地址
data:待發送 Key/value 參數。
callback:載入成功時回調函數。
type:返回內容格式,xml, html, script, json, text, _default。
應用場景
場景 1:數據驗證
場景 2:按需取數據
場景 3: 自動更新頁面
1.3. JSON
JSON(JavaScript Object Notation, JS 對象標記) 是一種輕量級的數據交換格式。它採用完全獨立於編程語言的文本格式來存儲和表示數據。簡潔和清晰的層次結構使得 JSON 成為理想的數據交換語言。 易於人閱讀和編寫,同時也易於機器解析和生成,並有效地提升網路傳輸效率。
1. Json對象有三種數據格式
對象類型
數組類型
混合類型
(1). 對象類型
語法格式:{name:value,name:value...}
解釋:
以”{”開始,以”}”結束
其中name是字元串類型,而value是任意類型
(2). 數組類型
語法格式:[{},{}... ...]
解釋:
以”[”開始,以”]”結束
數組可包含多個對象
(3). 混合類型
語法格式:{name:[]... ...}
合理包裹嵌套對象類型和數組類型
2. 如何將數據轉換為JSON格式
(1). 常見的json轉換工具
(2). json-lib的使用
需要導入jar包
json-lib.jar
json-lib的依賴jar包有
commons-lang.jar
commons-beanutils.jar
commons-logging.jar
commons-collections.jar
ezmorph.jar
在json-lib中只有兩個核心類
JSONObject
JSONArray
常用方法(JSONObject, JSONArray)
靜態方法 fromObject()
將Javabean對象轉換為json對象
JSONObject jsonObject=JSONObject.fromObject(對象名);
將集合轉換為json數組
JSONArray jsonArray=JSONArray.fromObject(集合名);
靜態方法toString()
將json對象轉換為json字元串
String jsonString1=obj.toString();
將json對象轉換為json字元串
String jsonString2=jsonArray.toString()