JavaScript學習要點(十三)
最簡單的JSON數據形式就是簡單值,字符串必須使用雙引號
JSON與JS的對象字面量相比,首先沒有聲明變量,其次沒有末尾的分號,對象的屬性必須加雙引號,屬性的值可以是簡單值,也可以是複雜類型的值
JSON數組採用的就是JS中的數組字面量形式,但沒有變量和分號,數組可以與對象組合起來構成更復雜的數據集合
JSON對象有兩個方法:stringify()和parse()分別用於將JS對象序列化爲JSON字符串和把JSON字符串解析爲原生的JS值
var book = {
title: “A”,
authors: [
“B"
],
edition: 3,
year: 2011
};
var jsonText = JSON.stringify(book);
實際上該函數還可以接收另兩個參數,第一個參數是一個過濾器,可以是個數組,第二個參數是一個選項,表示是否在JSON字符串中保留縮進
如果傳入的第二個參數不是數組而是函數,行爲會稍有不同,它接收兩個參數,屬性名和屬性值,函數的返回值就是相應鍵的值,通常用Switch(傳進來的屬性名),return 對屬性值調用的某些方法
第三個參數是縮進空格數,最大爲10,只要第三個參數有效,結果會自動包含換行符
JSON.parse()方法也可以接收另一個參數,將在每個鍵值對上調用
var bookCopy = JSON.parse(jsonTest,function(Key,value){
if (key == “A”){
}else{
}
});
Ajax的技術核心是XMLHttpRequest,使用該XHR對象要調用的第一個方法是open(),接收三個參數:要發送的請求類型,請求的URL和表示是否異步發送請求的布爾值
xhr.open(“get”,“example.php”,false);
URL相對於執行代碼的當前頁面(也可以是絕對路徑),二是調用open()方法並不會真正的發送請求,只是啓動請求以備發送,比如還需要xhr.send(null);
send()方法接收一個參數,即要作爲請求主體發送的數據,如果不需要則傳入null
無論內容類型是什麼,響應主體的內容都會保存到responseText屬性中,對非XML數據而言,該屬性爲null
返回的狀態碼存儲在xhr的status屬性裏
大部分時間發送的都是異步請求,此時可以檢測XHR對象的readyState屬性,該屬性表示當前活動階段
0:未初始化,尚未調用open()方法
1:啓動,已open()但尚未send()
2:發送,已send()但尚未收到響應
3:接收,已經收到部分數據
4:完成,已經收到全部數據,可以在客戶端使用
readyState每一次變化都會觸發一次readyStatechange事件
overrideMimeType()被納入XMLHttpRequest2級規範中,用來重寫服務器返回的MIME類型,因爲返回響應的MIME類型決定了XHR對象如何處理它,而且該方法的調用需在send()方法之前
進度事件有以下六個
loadstart progress error abort load loadend
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.