【Ajax教程詳解】

Ajax

1.1 ajax簡介

Ajax全稱為“Asynchronous JavaScript and XML”(異步JavaScript和XML)颜说,是一種創(chuàng)建交互式網(wǎng)頁應(yīng)用的網(wǎng)頁開發(fā)技術(shù)。

Ajax是一種無需重新加載整個頁面的情況下斑鸦,能夠更新部分網(wǎng)頁的技術(shù)库倘。

Ajax = 異步? JavaScript和XML。

同步:同步方法調(diào)用一旦開始诫惭,調(diào)用者必須等到方法調(diào)用返回后檩奠,才能繼續(xù)后續(xù)的行為桩了。

異步:異步方法調(diào)用更像一個消息傳遞,一旦開始埠戳,方法調(diào)用就會立即返回井誉,調(diào)用者就可以繼續(xù)后續(xù)的操作。

Ajax通過在后臺與服務(wù)器進行少量數(shù)據(jù)交換整胃,Ajax可以使網(wǎng)頁實現(xiàn)異步更新颗圣。這意味著可以在不重新加載整個頁面的情況下,對網(wǎng)頁的某部分進行更新屁使。

傳統(tǒng)的網(wǎng)頁(不適用Ajax)如果需要更新內(nèi)容在岂,必須重載整個網(wǎng)頁。

有很多使用Ajax的應(yīng)用案例程序案例:新浪微博屋灌、Google地圖洁段、開心網(wǎng)等;

1.2 XMLHttpRequest

XMLHttpRequest對象

XMLHttpRequest是Ajax的基礎(chǔ)共郭,所有現(xiàn)在瀏覽器均支持XMLHttpRequest對象(IE5和IE6使用ActiveXObject)。

所有現(xiàn)代瀏覽器(IE7+疾呻、Firefox除嘹、Chrome、Safari以及Opera)均內(nèi)建XMLHttpRequest對象岸蜗。

XMLHttpRequest用于在后臺與服務(wù)器交換數(shù)據(jù)尉咕。這意味著可以在不重新加載整個頁面的情況下,對頁面的某部分進行更新璃岳。

XMLHttpRequest使用流程

1年缎、創(chuàng)建XMLHttpRequest對象

2、請求(同步或者異步請求)

3铃慷、響應(yīng)

Request的Open方法

Request的Open方法

注意:默認方法是異步的单芜,也就是開子線程,同步方法已經(jīng)被廢棄犁柜,不能再用

1.3 Ajax準備狀態(tài)碼

request.readyState

0:請求未初始化

1:服務(wù)器連接已建立

2:請求已接收

3:請求處理中

4:請求已完成洲鸠,且響應(yīng)已就緒

1.4 Http響應(yīng)狀態(tài)

request.status

200:‘OK’

404:未找到頁面

405:用來訪問本頁面的HTTP方法不被允許,也就是post不能請求get

1.5 獲取響應(yīng)數(shù)據(jù)

request.responeText

1.6 登錄的get案例


ajax狀態(tài)碼和響應(yīng)碼

Step1:寫一個get登錄表單

登錄表單


Step2:寫一個LoginServlet

LoginServlet


Step3:ajax的get請求

ajax的get請求

1.7 登錄的post案例

ajax的post請求流程

1.創(chuàng)建請求對象

2.連接

3.設(shè)置content-type請求頭(如果不設(shè)置請求頭,發(fā)送請求會失敯峭蟆)

4.發(fā)送請求绢淀,傳遞請求參數(shù)

5.接收響應(yīng)

post請求登錄的js代碼

2 JSON字符串

1.JSON指的是JavaScript對象表示法(JavaScript Object Notation)

2. JSON 是輕量級的文本數(shù)據(jù)交換格式

3. JSON獨立于語言

4. JSON具有自我描述性,更易理解瘾腰。

2.1 Json字典

相當(dāng)于java的map(鍵值對){“firstName”:“Bill”皆的,“l(fā)astName”:“Gates”}

2.2 Json數(shù)組

相當(dāng)于數(shù)組里存了map,字典

[

{ "firstName":"Bill" , "lastName":"Gates" },

{ "firstName":"George" , "lastName":"Bush" },

{ "firstName":"Thomas" , "lastName":"Carter" }

]

2.3 Json字典

字典里面存數(shù)組

{

"employees": [

{ "firstName":"Bill" , "lastName":"Gates" },

{ "firstName":"George" , "lastName":"Bush" },

{ "firstName":"Thomas" , "lastName":"Carter" }

]

}

2.4 js中的json對象和字符串相互轉(zhuǎn)換

json對象和字符串相互轉(zhuǎn)換


3.1 Jackson簡介

Jackson是一個簡單基于Java應(yīng)用庫,Jackson可以輕松的將Java對象轉(zhuǎn)換成json字符串和xml文檔蹋盆,同樣也可以將json祭务、xml轉(zhuǎn)換成Java對象。Jackson所依賴的jar包較少怪嫌,簡單易用并且性能也要相對高些义锥,并且Jackson社區(qū)相對比較活躍,更新速度也比較快岩灭。

3.2 jackson特點

1拌倍、容易使用- jackson API提供了一個高層次外觀,以簡化常用的用例噪径。

2柱恤、無需創(chuàng)建映射- API提供了默認的映射大部分對象序列化。

3找爱、性能高-快速梗顺,低內(nèi)存占用,適合大型對象圖表或系統(tǒng)车摄。

4寺谤、干凈的JSON - jackson創(chuàng)建一個干凈和緊湊的JSON結(jié)果,這是讓人很容易閱讀吮播。

5变屁、不依賴-庫不需要任何其他的庫,除了JDK意狠。

6粟关、開源代碼- jackson是開源的,可以免費使用环戈。

3.3對象轉(zhuǎn)json字符串案例

對象轉(zhuǎn)json字符串


3.4 json字符串轉(zhuǎn)對象

String?str?= "{\"id\":\"1001\",\"name\":\"Java入門\",\"price\":19.88,\"pnum\":100,\"category\":\"IT\",\"description\":\"Good Book\"}";

System.out.println(str);//創(chuàng)建 "對象映射" 對象

ObjectMapper mapper?=?new?ObjectMapper();

Book book?= mapper.readValue(str, Book.class);

System.out.println(book);



4 ajax處理json數(shù)據(jù)


返回json數(shù)據(jù)

5 get請求中文處理

1.請求的url后面的參數(shù)不能傳中文

2.工作中對get請求對中文進行url編碼

3.url編碼是什么

URL編碼遵循下列規(guī)則: 每對name/value由&闷板;符分開;每對來自表單的name/value由=符分開院塞。如果用 解碼軟件 解碼軟件 戶沒有輸入值給這個name遮晚,那么這個name還是出現(xiàn),只是無值迫悠。任何特殊的字符(就是那些不是簡單的七位ASCII鹏漆,如漢字)將以百分符%用十六進制編碼,當(dāng)然也包括象 =,&;艺玲,和 % 這些特殊的字符括蝠。其實url編碼就是一個字符ascii碼的十六進制。


js提供的url編碼和解碼

encodeURIComponent編碼與decodeURIComponent 解碼

encodeURI與decodeURIL

encodeURI()與encodeURIComponent()區(qū)別

兩者的區(qū)別在于,encodeURI函數(shù)不會對以下的字符進行處理: “! @ # $ & * ( ) = : / ; ? + ' ”

推薦使用encodeURIComponent()

f]默認情況下ajax,瀏覽器會對url進行編碼

案例:

<script?type="text/javascript">

var?urlStr = 'LoginServlet?username=張三豐&password=123';

//1.對字符串進行url編碼,會對一些特殊字符串,比如中文,:,&,?號進行編碼

var?u1 = encodeURIComponent(urlStr);

var?u2 = encodeURI(urlStr)

console.log(u1);

console.log(u2);

//2.對url進行解碼,還原原始模樣

console.log(decodeURIComponent(u1));

console.log(decodeURIComponent(u2));

</script>



對前面get請求進行url編碼



6 ajax的兼容性問題

var request;

if (window.XMLHttpRequest)

{

// ?IE7+, Firefox, Chrome, Opera, Safari瀏覽器執(zhí)行代碼

request=new XMLHttpRequest();

}

else

{

// IE6, IE5瀏覽器執(zhí)行代碼

request=new ActiveXObject("Microsoft.XMLHTTP");

}


7. 總結(jié)

工作中使用ajax是用于發(fā)送get/post的網(wǎng)絡(luò)異步請求饭聚,工作中用的更多的是jquery封裝好的get/post請求忌警。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市秒梳,隨后出現(xiàn)的幾起案子法绵,更是在濱河造成了極大的恐慌,老刑警劉巖酪碘,帶你破解...
    沈念sama閱讀 217,185評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件朋譬,死亡現(xiàn)場離奇詭異,居然都是意外死亡兴垦,警方通過查閱死者的電腦和手機徙赢,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評論 3 393
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來探越,“玉大人狡赐,你說我怎么就攤上這事∏蔗#” “怎么了枕屉?”我有些...
    開封第一講書人閱讀 163,524評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長鲤氢。 經(jīng)常有香客問我搀擂,道長,這世上最難降的妖魔是什么铜异? 我笑而不...
    開封第一講書人閱讀 58,339評論 1 293
  • 正文 為了忘掉前任哥倔,我火速辦了婚禮,結(jié)果婚禮上揍庄,老公的妹妹穿的比我還像新娘。我一直安慰自己东抹,他們只是感情好蚂子,可當(dāng)我...
    茶點故事閱讀 67,387評論 6 391
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著缭黔,像睡著了一般食茎。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上馏谨,一...
    開封第一講書人閱讀 51,287評論 1 301
  • 那天别渔,我揣著相機與錄音,去河邊找鬼。 笑死哎媚,一個胖子當(dāng)著我的面吹牛喇伯,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播拨与,決...
    沈念sama閱讀 40,130評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼稻据,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了买喧?” 一聲冷哼從身側(cè)響起捻悯,我...
    開封第一講書人閱讀 38,985評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎淤毛,沒想到半個月后今缚,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,420評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡低淡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,617評論 3 334
  • 正文 我和宋清朗相戀三年姓言,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片查牌。...
    茶點故事閱讀 39,779評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡事期,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出纸颜,到底是詐尸還是另有隱情兽泣,我是刑警寧澤,帶...
    沈念sama閱讀 35,477評論 5 345
  • 正文 年R本政府宣布胁孙,位于F島的核電站唠倦,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏涮较。R本人自食惡果不足惜稠鼻,卻給世界環(huán)境...
    茶點故事閱讀 41,088評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望狂票。 院中可真熱鬧候齿,春花似錦、人聲如沸闺属。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽掂器。三九已至亚皂,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間国瓮,已是汗流浹背灭必。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評論 1 269
  • 我被黑心中介騙來泰國打工狞谱, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人禁漓。 一個月前我還...
    沈念sama閱讀 47,876評論 2 370
  • 正文 我出身青樓跟衅,卻偏偏與公主長得像,于是被迫代替她去往敵國和親璃饱。 傳聞我的和親對象是個殘疾皇子与斤,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,700評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 專業(yè)考題類型管理運行工作負責(zé)人一般作業(yè)考題內(nèi)容選項A選項B選項C選項D選項E選項F正確答案 變電單選GYSZ本規(guī)程...
    小白兔去釣魚閱讀 8,988評論 0 13
  • 創(chuàng)新型區(qū)塊鏈項目ICC (intelligent Commerce Chain),提出了基于區(qū)塊鏈的AI智能商業(yè)生...
    ICC智能商業(yè)鏈閱讀 243評論 0 0
  • 女子最是十六七荚恶, 愛上詩書與夢里人撩穿。 詩中說:我打江南走過, 那等在季節(jié)里的容顏如蓮花的開落谒撼。 書中說:人間最美是...
    修行的四月閱讀 617評論 0 5