032.Ajax+Json+Jquery

來源:互聯網
上載者:User

標籤:不一致   art   success   pre   顯示   多個   頭資訊   user   如何   

Ajj
A: Ajax
J: JSON
J: jQuery

-----------------------------------------------
JSON
Javascript Object Notation
JS對象標記

class User
{
public int Id{get;set;}
public string Name{get;set;}
public string Phone{get;set;}
// public string HomeAddress{get;set;}
// public string OfficeAddreess{get;set;}
}
User u=new User{Id=1001,Name="aaa"};
User[] array= new User[2];
array[0]=new User{Id=1001,Name="aaa"};
array[1]=new User{Id=1002,Name="bbb"};
User[] array={
new User{Id=1001,Name="aaa"},new User{Id=1002,Name="bbb"}}

var u={"Id":1001,"Name":"aaa","Phone":"13912345678"}
var array=[{"Id":1001,"Name":"aaa","Phone":"13912345678"},
{"Id":1002,"Name":"bbb","Phone":"1381111111"}
]

json格式 以索引值對的形式描述對象的屬性名稱與屬性值
單一對象
{k1:v1,k2:v2,.........}
對象數組
[{k1:v1,k2:v2,......},{},{}]

class ShipAddress
{
public string Home{get;set;}
public string Office{get;set;}
}
var add={"Home":"北京海澱","Office":"北京朝陽"}
class User
{
public int Id{get;set;}
public string Name{get;set;}
public string Phone{get;set;}
public ShipAddress Address{get;set;}
}
JSON表示綜合物件
var u={
"Id":1001,"Name":"aaa","Phone":"13912345678",
"Address":{"Home":"北京海澱","Office":"北京朝陽"}
}
{k1:v1,K2:v2,k3:v3, k4: { json對象 } }
---------------------------------------------------------------------------------------------------------------------
Ajax
Asysnchronization JavaScript and XML
在用戶端瀏覽器使用XmlHttpRequeset對象向服務端發送請求,
服務端對用戶端應答文本資料,
用戶端在不重新整理頁面的情況下,實現與服務端的資料互動


XmlHttpRequeset對象(2+4+1 七大屬性事件與方法)

open(type,url,asyn)方法 開啟與服務端的串連
type:請求類型 post,get
url: 服務端接收請求的路徑
asyn:是否非同步 true/false

send(data)方法 發送請求
data:向服務端提交的資料
1. get請求 不需要data參數 因為get請求的資料存在於url
2. post請求 需要data參數 格式 a=1&b=2&c=3

readyState屬性
0,1,2,3,4

status屬性
200表示服務端正常響應
404,500,403

responseText屬性
responseXML屬性

事件onreadystatechange
為該事件提供事件處理常式,也就是一個js函數,響應請求狀態改變事件

1建立XmlHttpRequest對象
2訂閱onreadystatechange事件
3.開啟串連
4.如果是post請求,佈建要求頭部資訊
5發送請求,如果是post請求,send方法需要參數

案例
在註冊時 判斷帳號是否可用
1 服務端建立一個ashx(一般處理常式) ,接收請求
2.用戶端頁面發送ajax 請求
3. 服務端對用戶端的請求作出應答
4. 用戶端根據應答 在頁面提示

-----------------------------------------------------
jQuery中的 ajax操作函數
1. get(url,data,callback,type)
url:請求路徑
data:請求資料 json格式
callback:請求完成後的回呼函數
type:服務端返回的資料格式 text,xml,json,html,javascript

2. getJSON(url,data,callback)
url:請求路徑
data:請求資料 json格式
callback:請求完成後的回呼函數

3. post(url,data,callback,type)
url:請求路徑
data:請求資料 json格式
callback:請求完成後的回呼函數
type:服務端返回的資料格式 text,xml,json,html,javascript

4. ajax(settings)
settings:基於json格式的請求配置
{ "url":請求路徑,
"data":請求資料,
"dataType": 伺服器返回的資料格式,
"type:請求類型 post,get,
"cache":是否緩衝
"global": 是否觸發全域事件,
"beforeSend":請求開始的時候
"success": 請求成功後的回呼函數,
"complete":請求完成後的回呼函數,
"error":錯誤的回呼函數,
}
----------------------------------------------------
原生ajax的post請求
1. 建立XMLHttpRequest
2. 訂閱事件
3. 開啟串連
4. 佈建要求頭資訊
5. 發送資料

jQuery中的ajax操作,方法參數中的請求資料都是json格式
1. get 方法
2. post 方法

[{"id":21,"name":"name21","price":923},{"id":22,"name":"name22","price":663},{"id":23,"name":"name23","price":599},{"id":24,"name":"name24","price":653},{"id":25,"name":"name25","price":287},{"id":26,"name":"name26","price":773},{"id":27,"name":"name27","price":898},{"id":28,"name":"name28","price":201},{"id":29,"name":"name29","price":234},{"id":30,"name":"name30","price":267}]


--------------------------------------------------------------
使用ajax+json+jquery實現類比分頁
1. 服務端建立ProductQuery.ashx,
根據用戶端請求的page頁號,將查詢結果以json字串返回

2. 用戶端向服務端發送ajax請求,擷取json資料

3. 根據擷取的json資料,動態建立table, 並且顯示
-----------------------------------------------------------------------------

使用JS檔案儲存體資料
1. 服務端根據資料庫產生json格式的資料 存在js檔案中
var xxxx=json資料

2. 用戶端瀏覽器訪問頁面的時候,載入js檔案
js檔案可以緩衝在用戶端,檔案的內容實際就是js變數的聲明
相關頁面引入該js檔案,實際就可以訪問js變數

3.如何同步資料
a. 服務端產生的js檔案具有版本名 product_年月日時分秒.js
b. 修改相關引入該js檔案的頁面代碼,
c. 瀏覽器訪問頁面的時候,因為js檔案名稱與用戶端緩衝的js檔案名稱不一致,
會重新載入js檔案,

-------------------------------------------------------------------------------
ajax全域事件
1. ajaxStart() 響應ajax請求開始事件
2. ajaxCompleted() 響應ajax請求完成事件,
無論服務端返回什麼狀態代碼,200,404,500
3. ajaxSuccess() 響應ajax成功事件 狀態代碼200
4. ajaxError() 服務端返回錯誤狀態代碼 403,404,500....

-----------------------------------------------------------------------------
全域事件與ajax方法的選擇策略
1. 如果頁面多個ajax請求 具有相同的呈現邏輯 可以選擇全域事件
2. 如果頁面多個ajax 請求,具有各自不同的呈現邏輯, 可以使用ajax方法進行個性定製

------------------------------------------------------------------------------

購物車頁面
1.初始載入的時候,向伺服器發送ajax請求,擷取客戶的地址清單
2.點擊提交按鈕,向伺服器發送ajax請求,提交訂單

032.Ajax+Json+Jquery

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.