1. 程式人生 > >Ajax+JSON

Ajax+JSON

Ajax:無重新整理:不斷重新整理整個頁面,只重新整理區域性(只更新部分頁面,有效利用頻寬,提供連續的使用者體驗,提供類似C/S的互動效果,操作更方便)

XMLHttpRequest

事件 (onreadystatechange):指定回撥函式

常用屬性(readyState):XMLHttpRequest的狀態資訊

  • 整個Ajax技術的核心
  • 提供非同步傳送請求的能力
  •  常用方法
           方法 說明

0

未初始化
1 開始傳送請求
2 請求傳送完成
3 開始讀取響應
4 讀取響應結束
           方法 說明

open(String method,String url,boolean asunc,

String user,String password)

建立一個新的HTTP請求
send(String data)
傳送請求到服務端
abort() 取消當前請求
setRequestHeader(String header,String value) 設定請求的某個HTTP頭資訊
getRequestHeader(String header) 獲取響應的指定HTTP頭資訊
getAllResponseHeader() 獲取響應的所有HTTP頭資訊

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

常用屬性

  • status:HTTP狀態碼
  • statusText:返回當前請求的響應狀態
  • responseText:以文字形式獲取響應的內容
  • responseXML:將XML格式的響應內容解析成 DOM物件返回

Ajax實現步驟

 建立XMLHttpRequest物件
 通過XMLHttpRequest物件設定請求資訊(URL 資料 回撥函式)

向伺服器傳送請求

建立回撥函式,根據響應狀態動態更新頁面

編寫伺服器端處理客戶請求

 

使用Jquery實現Ajax

$.ajax([settings]);

常用屬性引數:

                               引數 型別 說明
url String 傳送請求的地址,預設為當前頁地址
type String 請求方式,預設為GET
data

PlainObject或String

或 Array

傳送伺服器的資料
data Type String

預期伺服器返回的資料型別

包括:XML,HTML,Script,JSON,JSONP

,Text

timeout  Number 設定請求超時時間

 

 

 

 

 

 

 

 

 

 

常用函式引數

                           引數 型別 說明
         beforeSend

Function()(jqXHR jqxhr,

PlainObject  settings)

傳送請求前呼叫函式
         success

Function(任意型別  result,

jqxhr jqxhr)

請求成功後呼叫的函式

引數result:可選,有服務

器返回的引數

         error

Function(JqXHR  jqxhr,

String  textStatus,

String  errorThrown)

請求失敗時呼叫的函式
         complete

Function(jqXHR   jqxhr,

String  textStatus)

請求完成後(無論成功還是失敗都呼叫的函式)

 

 

 

 

 

 

 

 

 

 

 

 

語法:

$.ajax({
         url:'',                      //url地址
         type:'GET',                  //jsonp 型別下只能使用GET,不能用POST,這裡不寫預設為GET
         dataType:'jsonp',            //指定為jsonp型別
         data:{},                     //資料引數
         jsonp:'callback',            //伺服器端獲取回撥函式名的key;callback是預設值
         jsonpCallback:'jsonpName',   //回撥函式名
         success:function(result){    //成功執行處理,對應後臺返回的jsonpName(data)方法
             
         },
         error:function(XMLHttpRequest, textStatus, errorThrown){
          //通常情況下textStatus和errorThrown只有其中一個包含資訊
       }
     }); 
JSON

JSON(JavaScript  Object  Notation)   

  • 一種輕量級的資料交換格式
  • 採用獨立於語言的文字格式
  • 通常用於在客戶端和伺服器之間傳遞資料

JSON優點

  • 輕量級互動語言
  • 結構簡單
  • 易於解析

定義JSON物件

var JSON物件={"name":value,"name",value,....};

定義JSON陣列(兩種格式)

var JSON陣列 =[value,value,....];            格式一

var JSON陣列 =[{"name":"value","name",value,....},{"name":"value","name",value,....}];            格式二

 

Jquery的其他Ajax方法

 

$.get(url[,data][,success][,dataType]);               //get提交方式請求

$.post(url[,data][,success][,dataType]);           //post提交方式請求

                                     引數 型別 說明
url String 必選,傳送請求的地址
data PlainObject或String  傳送到伺服器的資料
success

Function(PlainObject  result,

String  textStatus,jqXHR   jqxhr)

請求成功後呼叫的函式,

引數result:可選,由伺服器返回的資料

dataType String

預期伺服器返回的資料型別

包括:XML,HTML,Script

JSON,JSONP,text

 

 

 

 

 

 

 

 

 

$.getJSON(url[,data][,success]);

 

使用Ajax直接載入頁面內容

.load()

${selector}.load(url[,data][,success][,complete]); 

使用.load()實現非同步互動

${selector),load(url,data);