什么是AJAX?

大家好黍析,我是IT修真院北京總院第24期的學員节沦,一枚正直純潔善良的web程序員

今天給大家分享一下键思,修真院官網(wǎng)js任務5,深度思考中的知識點——什么是AJAX甫贯?

1.背景介紹

什么是Ajax吼鳞?

Ajax的全稱是Asynchronous JavaScript and XML 中文名稱定義為異步的JavaScript和XML。

Ajax的概念由杰西·詹姆士·賈瑞特所提出叫搁,該技術的出現(xiàn)改變了古老的赖条,用戶請求——等待——響應這種web交互模式。

Ajax是Web2.0技術的核心常熙。由多種技術集合而成纬乍,使用Ajax技術不必刷新整個頁面,只需對頁面的局部進行更新裸卫,可以節(jié)省網(wǎng)絡帶寬仿贬,提高頁面的加載速度,從而縮短用戶等待時間墓贿,改善用戶體驗

2.知識剖析

傳統(tǒng)的請求方式

傳統(tǒng)的web應用程序中茧泪,用戶向服務器發(fā)送一個請求,然后等待聋袋,服務器接受到用戶的請求然后響應队伟。在這段時間內(nèi),用戶會傻乎乎的盯著一個空白頁面看幽勒。這是因為以往的傳輸方式為同步處理方式嗜侮。長久以來我們對這種web交互模式已經(jīng)習慣了,并且以使用者的角度來講已經(jīng)覺得是理所當然的事情了。


Ajax的工作方式

和傳統(tǒng)的web應用不同锈颗,Ajax采取了異步交互避免了用戶請求-等待-應答交互方式的缺點顷霹。

Ajax在應用程序和服務器中引入了一個中間層---Ajax引擎,它是用Javascript編寫的击吱,在一個隱藏的框架中運行淋淀。Ajax引擎負責呈現(xiàn)用戶界面,以及代表用戶和服務器進行交互。Ajax引擎允許用戶和服務器進行異步的交互覆醇。用戶無需傻乎乎的盯著空白頁面朵纷。

3.常見問題

1、IE瀏覽器下面的緩存問題

2永脓、跨域問題

3袍辞、Ajax亂碼問題

4、使用post提交的時候需要設置content-type為"application/x-www-form-urlencoded"

5憨奸、Ajax對象屬性的大小寫問題

6革屠、Ajax狀態(tài)為0的問題

4.解決方法

1.IE瀏覽器下面的緩存問題:

在IE瀏覽器下面使用get請求時凿试,如果第一次請求了數(shù)據(jù)之后IE會自動緩存數(shù)據(jù)排宰,如果下一次再發(fā)送同樣的請求的時候瀏覽器會自動先去找緩存顯示出來,所以如果請求的數(shù)據(jù)有變化的時候那婉,這里是看不到變化的板甘。

解決辦法:

xhr.open("get","xxxx.aspx?_dc="+newDate().getTime(),true);

就是在請求的后面 加上_dc=...讓url變成唯一,或者是详炬,改成post請求盐类。

2.跨域問題:

這是我們目前見到的最多的,也是最熟悉的一個問題呛谜。本地上面直接采用Nginx跨域?qū)崿F(xiàn)在跳。在服務器上的話,也可以用Nginx隐岛。注意 Nginx跨域可以同時配置多個接口的猫妙,就是多寫幾個location就好了,然后location后面帶的參數(shù)不一樣就可以了聚凹。

3.Ajax亂碼問題

亂碼問題雖然我們目前遇到的不多割坠,但是也屬于比較常見的一個問題了。出現(xiàn)的主要原因就是編碼不一致導致的妒牙。如果出現(xiàn)亂碼問題了彼哼,首先檢查一下meta聲明的charset要和請求的頁面返回的charset一致。response.charset="gb2312 or utf-8"

4.使用post提交的時候需要設置

content-Type: application/x-www-form-urlencoded

//jQuery中

content-Type: application/x-www-form-urlencoded;charset=utf-8

//AngularJS中$http的

content-Type: application/json; charset=utf-8

//使用原生Ajax需要在open以后才能使用xhr.setRequestHeader()方法湘今,否則出錯敢朱。

xhr.open("post","xxxx.aspx",true);? ? ? ??

xhr.setRequestHeader("content-type","application/x-www-form-urlencoded")

//用原生寫時必須在open()方法之后send()方法之前調(diào)用。

5.Ajax對象屬性的大小寫問題

有些瀏覽器比如火狐,對大小寫是敏感的蔫饰,if (xhr.readystate==4)這種寫法琅豆,在IE下是成立的,但是在ff下就行不通了篓吁,因為IE不區(qū)分大小寫茫因,ff是區(qū)分大小的。標準寫法為if (xhr.readyState==4)杖剪,同理還有屬性responseText冻押,responseXML。

習慣采用駝峰形式的寫法可以避免這個問題盛嘿。

6.Ajax狀態(tài)0的問題

有時候在測試Ajax代碼的時候加了 xhr.status==200的判斷后洛巢,一直不執(zhí)行xhr.status==200的代碼,這個就需要注意了次兆。xhr.status==200是要通過服務器確認后來返回的稿茉,在服務器頁面沒有發(fā)生錯誤或者轉(zhuǎn)向時才返回200狀態(tài)的此狀態(tài)和你通過瀏覽器訪問頁面時服務器定義的狀態(tài)一致。這個我們提前就跟后端對接好了芥炭,問題也不大漓库。

5.編碼實戰(zhàn)

jQuery方法


AngularJS方法


Javascript原生方法


6.拓展思考

AngularJS請求的時候,success()和then()方法的區(qū)別?


then()方法與其他兩種方法的主要區(qū)別是,它會接收到完整的響應對象园蝠,信息更為全面渺蒿,而success()和error()則會對響應對象進行析構,使用起來更為方便彪薛。

7.參考文獻

參考一:什么是跨域

參考二:AngularJS中then和success的區(qū)別

參考三:Ajax常見問題

8.更多討論

常見的異步操作有哪些茂装?

Javascript異步編程的4種方法


視頻鏈接

密碼: pf7s

ppt鏈接


感謝大家觀看

今天的分享就到這里啦,歡迎大家點贊善延、轉(zhuǎn)發(fā)少态、留言、拍磚~

技能樹.IT修真院

“我們相信人人都可以成為一個工程師易遣,現(xiàn)在開始彼妻,找個師兄,帶你入門训挡,掌控自己學習的節(jié)奏澳骤,學習的路上不再迷茫”澜薄。

這里是技能樹.IT修真院为肮,成千上萬的師兄在這里找到了自己的學習路線,學習透明化肤京,成長可見化颊艳,師兄1對1免費指導茅特。快來與我一起學習吧~

我的邀請碼:12361358棋枕,或者你可以直接點擊此鏈接:http://www.jnshu.com/login/1/12361358

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末白修,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子重斑,更是在濱河造成了極大的恐慌兵睛,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,470評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件窥浪,死亡現(xiàn)場離奇詭異祖很,居然都是意外死亡,警方通過查閱死者的電腦和手機漾脂,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評論 3 392
  • 文/潘曉璐 我一進店門假颇,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人骨稿,你說我怎么就攤上這事笨鸡。” “怎么了坦冠?”我有些...
    開封第一講書人閱讀 162,577評論 0 353
  • 文/不壞的土叔 我叫張陵形耗,是天一觀的道長。 經(jīng)常有香客問我蓝牲,道長趟脂,這世上最難降的妖魔是什么泰讽? 我笑而不...
    開封第一講書人閱讀 58,176評論 1 292
  • 正文 為了忘掉前任例衍,我火速辦了婚禮,結(jié)果婚禮上已卸,老公的妹妹穿的比我還像新娘佛玄。我一直安慰自己,他們只是感情好累澡,可當我...
    茶點故事閱讀 67,189評論 6 388
  • 文/花漫 我一把揭開白布梦抢。 她就那樣靜靜地躺著,像睡著了一般愧哟。 火紅的嫁衣襯著肌膚如雪奥吩。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,155評論 1 299
  • 那天蕊梧,我揣著相機與錄音霞赫,去河邊找鬼。 笑死肥矢,一個胖子當著我的面吹牛端衰,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 40,041評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼旅东,長吁一口氣:“原來是場噩夢啊……” “哼灭抑!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起抵代,我...
    開封第一講書人閱讀 38,903評論 0 274
  • 序言:老撾萬榮一對情侶失蹤腾节,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后荤牍,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體禀倔,經(jīng)...
    沈念sama閱讀 45,319評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,539評論 2 332
  • 正文 我和宋清朗相戀三年参淫,在試婚紗的時候發(fā)現(xiàn)自己被綠了救湖。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,703評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡涎才,死狀恐怖鞋既,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情耍铜,我是刑警寧澤邑闺,帶...
    沈念sama閱讀 35,417評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站棕兼,受9級特大地震影響陡舅,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜伴挚,卻給世界環(huán)境...
    茶點故事閱讀 41,013評論 3 325
  • 文/蒙蒙 一靶衍、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧茎芋,春花似錦颅眶、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,664評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至偷厦,卻和暖如春商叹,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背只泼。 一陣腳步聲響...
    開封第一講書人閱讀 32,818評論 1 269
  • 我被黑心中介騙來泰國打工剖笙, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人辜妓。 一個月前我還...
    沈念sama閱讀 47,711評論 2 368
  • 正文 我出身青樓枯途,卻偏偏與公主長得像忌怎,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子酪夷,可洞房花燭夜當晚...
    茶點故事閱讀 44,601評論 2 353

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

  • 大家好,我是IT修真院深圳分院第3期的學員坦报,一枚正直純潔善良的前端程序員库说,今天給大家分享一下,修真院官網(wǎng)前端工程師...
    大大頭大閱讀 7,658評論 1 72
  • 大家好片择,我是IT修真院成都分院第7期的學員韓建名潜的,一枚正直純潔善良的WEB前端程序員。 目錄 1.背景介紹 2.知...
    inh_閱讀 342評論 0 0
  • 1.背景介紹 什么是Ajax字管? AJAX即“Asynchronous JavaScript and XML”(異步...
    我叫于搞吧閱讀 327評論 0 0
  • 大家好嘲叔,我是IT修真院深圳分院第01期學員亡呵,一枚正直純潔善良的web程序員。 今天給大家分享一下硫戈,修真院官網(wǎng)js任...
    嘴角那抹溫柔閱讀 714評論 0 1
  • 大家好丁逝,我是IT修真院北京總院第21期的學員楊夢桐汁胆,今天這篇文章主要總結(jié)了ajax的內(nèi)容 1. 什么是Ajax A...
    AmaYang閱讀 356評論 0 0