Ajax
AJAX即“Asynchronous Javascript And XML”:是,不發生頁面跳轉、異步請求載入內容并改寫區域頁面內容的技術,
也可以簡單的理解為通過JS向服務器發送請求,
同步處理:
就是當我們通過一個頁面向服務器發送一個請求時,在服務器回應結束之前,我們的整個頁面是不能操作的,并且即使整個頁面中只有一小部分內容發生改變我們也要重繪整個頁面,
異步處理:
通過AJAX向服務器發送請求,當服務器正常回應請求后,回應資訊會直接發送到AJAX中,AJAX可以根據服務器回應的內容做一些操作,并可區域的修改頁面,而不需要整個頁面重繪,
請求物件:XMLHttpRequest
- XMLHttpRequest物件用來封裝請求報文,我們向服務器發送的請求資訊全部都需要封裝到該物件中,
獲取XMLHttpRequest物件,不同瀏覽器之間有差異
//獲取XMLHttpRequest的通用方法 function getXMLHttpRequest(){ var xhr; try{ //大部分瀏覽器都支持 xhr = new XMLHttpRequest(); }catch(e){ try{ //如果不支持,在這里捕獲例外并且采用IE6支持的方式 xhr = new ActiveXObject("Msxml2.XMLHTTP"); }catch(e){ //如果還不支持,在這里捕獲例外并采用IE5支持的方式 xhr = new ActiveXObject("Microsoft.XMLHTTP"); } } return xhr; }
XMLHttpRequest物件的方法
-
open(method,url,async):用于設定請求的基本資訊,接收三個引數,
-
引數一:method
接收一個字串,表明請求的方法:get或post
-
引數二:url
請求的地址,接收一個字串
-
引數三:Assync
發送的請求是否為異步請求,接收一個布林值,① true 是異步請求 ② false 不是異步請求(同步請求)
-
-
send(string):用于將請求發送給服務器,可以接收一個引數
-
string引數
該引數只在發送post請求時需要,用于設定請求體
-
-
setRequestHeader(header,value):用于設定請求頭
-
引數一:header引數
字串型別,要設定的請求頭的名字
-
引數二:value引數
字串型別,要設定的請求頭的值
-
XMLHttpRequest物件的屬性
-
readyState
-
描述XMLHttpRequest的狀態
-
一共有五種狀態分別對應了五個數字:
-
0 :請求尚未初始化,open()尚未被呼叫
-
1 :服務器連接已建立,send()尚未被呼叫
-
2 :請求已接收,服務器尚未回應
-
3 :請求已處理,正在接收服務器發送的回應
-
4 :請求已處理完畢,且回應已就緒,
-
-
-
status
-
請求的回應碼
-
200 回應成功
-
404 頁面為找到
-
500 服務器內部錯誤
......
-
-
-
onreadystatechange
-
該屬性需要指向一個函式
-
該函式會在readyState屬性發生改變時被呼叫
-
-
responseText
-
獲得字串形式的回應資料,
-
-
responseXML(用的比較少)
-
獲得 XML 形式的回應資料,
-
JQuery的Ajax請求
四個Ajax請求方法
-
$.ajax方法
-
$.get方法
-
$.post方法
-
$.getJSON方法
一個表單序列化方法:serialize()表單序列化方法
$.ajax請求
- url: 請求的地址
- type : 請求的方式 get或post
- data : 請求的引數 string或json
- success: 成功的回呼函式
- dataType: 回傳的資料型別 常用json或text
$.get和$.post請求
- url:請求的URL地址
- data:待發送 Key/value 引數,
- callback:載入成功時回呼函式,
- type:回傳內容格式,xml, html, script, json, text,
$.getJSON請求
- url:待載入頁面的URL地址
- data:待發送 Key/value 引數,
- callback:載入成功時回呼函式,
表單的序列化
-
serialize() 方法可以把一個form表單中所有的表單項,都以字串name=value&name=value的形式進行拼接
$.ajax({ url : "ajaxServlet", // 請求地址 error:function(){ // 請求失敗回呼 alert("請求失敗"); }, success:function(data){ // 請求成功回呼 alert( data ); }, type:"POST", // 請求的方式 dataType:"json", // 回傳的資料型別為json物件 data:{ // 請求的引數 action:"jqueryAjax", a:12, date: new Date() } });
JSON
JSON是JavaScript Object Notation 的縮寫,是JS提供的一種輕量級的資料交換格式, 易于人閱讀和撰寫,同時也易于機器決議和生成,
JSON物件本質上就是一個JS物件,但是這個物件比較特殊,它可以直接轉換為字串,在不同語言中進行傳遞,通過工具又可以轉換為其他語言中的物件,
在標準的json格式中,json物件由大括號括起來,物件中的屬性也就是json的key是一個字串,所以一定要使用雙引號引起來,每組key之間使用逗號進行分隔,
JSON 6種資料型別
-
字串 //注意:不能使用單引號
-
數字
-
布林值
-
null值
-
物件
-
例子:{“name”:”sunwukong”, ”age”:18}
-
-
陣列
-
例子:[1,”str”,true]
-
JSON物件的訪問
key就是物件的屬性,我們要訪問一個物件的屬性,只需要使用【物件名.屬性名】的方式訪問即可,
JSON物件和字串物件的互轉
-
JSON.stringify( json ):此方法可以把一個json物件轉換成為json字串
-
JSON.parse( jsonString ): 此方法可以把一個json字串轉換成為json物件
JSON在Java中的使用
Gson 提供了用來在 Java 物件和 JSON 資料之間進行映射的 Java 類別庫,可以將一個 JSON 字串轉成一個 Java 物件,或者反過來,
-
java物件和json的轉換
-
java物件list集合和json的轉換
-
map物件和json的轉換
// json操作,一定要先new一個gson物件, Gson gson = new Gson(); // 1、把物件轉成為json字串 String personjson = gson.toJson(person); // 把json字串轉換成為java物件 Person p = gson.fromJson(personjson, Person.class); //2、java物件list集合和json的轉換 String jsonListString = gson.toJson(list); // 把json陣列轉換成為List物件 List<Person> ps = gson.fromJson(jsonListString, new PersonType().getType()); // 3、map物件和json的轉換 String jsonMapString = gson.toJson(mapPerson); // 通過使用匿名內部類的方式 Map<String, Person> map = gson.fromJson(jsonMapString,new TypeToken<HashMap<String, Person>>() {}.getType());
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/21654.html
標籤:jQuery
上一篇:Json與Ajax(注冊實體)
