Ajax: Asynchronous JavaScript and Xml , 異步js腳本和xml , 常用來實現頁面局部的異步刷新, 對提高用戶體驗有很大幫助. Xml在多語言時較有優勢, 但Ajax技術實際上較多采用Json對象而不是Xml來處理數據.
Ajax歷史....了解性知識
Ajax歸屬于Web前端開發技術, 與javascript有著異常緊密的聯系. Ajax就是一種實現異步通信無刷新的技術, 而這種技術可以有很多種實現方式. 瀏覽器的鼻祖網景(NetScape)公司最早發明了LiveScript腳本語言, 用來豐富網頁元素的表現形式, 使網頁能夠呈現出動態效果. 隨后的歷次改版升級后就誕生了JavaScript語言, 與此同期微軟(Microsoft)公司也看到互聯網的前景, 開始涉足并發力于互聯網行業, 推出了JScript語言, 可惜沒有JavaScript成熟, 發展遲滯. 最終微軟公司對互聯網的決心促成了MS對NS的漫長曲折的收購歷程.
這里提一下, 動態HTML語言(Dynamic Hyper Text Markup Language)就是將javascript放在Dom樹的元素節點中, 為元素提供動態展示行為.
Ajax代碼思路
創建請求對象
配置請求對象并發送到服務器
服務器應答請求對象
(1) 創建請求對象,作為和服務器進行通訊的對象:
function createRequest(){try{var request=new XMLHttpRequest();}catch(tryMS){try{request=new ActiveXObject("Msxml2.XMLHTTP");}catch(otherMS){try{request=new ActiveXObject("Microsoft.XMLHTTP");}catch(failed){request=null;}}}return request;}
注:ActiveXObject是Microsoft特定的一種編程對象,有兩個不同版本由不同瀏覽器分別支持。XMLHTTP是可以在Javascript等腳本語言中通過http協議傳送或接收XML及其他數據的一套API。
獲得請求對象request后,它有這么些個屬性:
常用的有onreadystatechange,readyState,responseText,status。
(2)配置請求對象并發送到服務器:
var request=createRequest();request.open("GET",url,true);request.onreadystatechange=showResponse;request.send(null);
open,send方法均來自request對象的原型XMLHttpRequest,打開__proto__:XMLHttpRequest可看到:
open()方法有三個參數,第一個是發送請求所使用的方法(GET還是POST,區別以后再總結),第二個是規定服務器端腳本的url(該文件可以是任何類型的文件),第三個參數規定是否進行異步處理(默認true異步)
send()方法將請求送往服務器。
我在這里注意到,request.onreadystatechange=showResponse;這句代碼所在的位置不同,控制臺輸出的響應內容就不同。想來也是,回調函數加入任務隊列的時機不同肯定輸出不同啊,就比如現在這個位置,
新聞熱點
疑難解答
圖片精選