AJAX是什么?
是Asynchronous Javascript And XML的首字母的縮寫, 它不是一門的新的語言,而是對現(xiàn)有技術的綜合利用。 其本質(zhì)是在HTTP協(xié)議的基礎上以異步的方式與服務器進行通信。
異步的概念?
指某段程序執(zhí)行時不會阻塞其它程序執(zhí)行,其表現(xiàn)形式為程序的執(zhí)行順序不依賴程序本身的書寫順序,相反則為同步。
異步的作用?
其優(yōu)勢在于不阻塞程序的執(zhí)行,從而提升整體執(zhí)行效率。
AJAX的核心?
XMLHTTPRequest,簡寫XHR,Xml可擴展標記語言,Http超文本傳輸協(xié)議,Request請求。XMLHttpRequest對象可以在不向服務器提交整個頁面的情況下,實現(xiàn)局部更新網(wǎng)頁。XMLHttpRequest 對象提供了對 HTTP 協(xié)議的完全的訪問,包括做出 POST 和 HEAD 請求以及普通的 GET 請求的能力。XMLHttpRequest 可以同步或異步返回 Web 服務器的響應,并且能以文本或者一個 DOM 文檔形式返回內(nèi)容。它可以接收任何形式的文本文檔,是 AJAX 的 Web 應用程序架構的一項關鍵功能。
前文說到XMLHTTPRequest可以接收任何形式的文檔,那么就不得不提到在網(wǎng)絡傳輸中常用的兩個數(shù)據(jù)格式。
兩種常用的數(shù)據(jù)格式xml和JSON?
xml:
xml的定義:可擴展標記語言,是一種用于標記電子文件使其具有結(jié)構性的標記語言。
xml的規(guī)范:
1、必須有一個根元素
2、不可有空格、不可以數(shù)字或.開頭、大小寫敏感
3、不可交叉嵌套
4、屬性雙引號(瀏覽器自動修正成雙引號了)
5、特殊符號要使用實體
6、注釋和HTML一樣
雖然可以描述和傳輸復雜數(shù)據(jù),但是其解析過于復雜并且體積較大,所以實現(xiàn)開發(fā)已經(jīng)很少使用了。
xml使用步驟簡述:
由于xml是DOM對象,可以直接DOM方法,
1、var xml=xhr.responseXML;獲取XML(PHP給的接口)
2、var items=xml.querySelector('item');獲取xml的文檔結(jié)構
3、字符串拼接
3.1、初始化var html='';
3.2、遍歷for(){獲取數(shù)據(jù)var item=item[i],}拼接html+='標簽+數(shù)據(jù)'
4、渲染document.querySelector('tbody').innerHTHML=html
JSON:
JSON定義:JavaScript Object Notation,另一種輕量級的文本數(shù)據(jù)交換格式,獨立于語言。
JSON的規(guī)范:
1、數(shù)據(jù)在名稱/值對中
2、數(shù)據(jù)由逗號分隔(最后一個健/值對不能帶逗號)
3、花括號保存對象方括號保存數(shù)組
4、使用雙引號
JSON的跨語言解析:
JSON數(shù)據(jù)在不同語言進行傳輸時,類型為字符串,不同的語言各自也都對應有解析方法,需要解析完成后才能讀取。
1、PHP解析方法
數(shù)組轉(zhuǎn)json字符 json_encode->$json_array = json_encode($array);
json字符轉(zhuǎn)成數(shù)組 json_decode->$array_json = json_decode($json_array);
2、Javascript 解析方法
字符串轉(zhuǎn)對象parse->var jsonObj=JSON.parse(jsonStr);
對象轉(zhuǎn)字符串stringify->var jsonStr=JSON.stringify(jsonObj);
tips:JSON兼容處理引用json2.js
XMLHttpRequest中的事件監(jiān)聽onreadystatechange?
以上這篇AJAX應用中必須要掌握的重點知識(分享)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
您可能感興趣的文章:- Jquery之Ajax運用 學習運用篇
- Ajax基礎詳解教程(一)