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

發佈了45 篇原創文章 · 獲贊 2 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章