Ajax

題目1:ajax 是什么或颊?有什么作用魔种?

  • AJAX 是異步的 JavaScript 和 XML(Asynchronous JavaScript And XML)悠栓。簡(jiǎn)單點(diǎn)說色解,就是使用 XMLHttpRequest對(duì)象與服務(wù)器通信。 它可以使用 JSON钥勋,XML炬转,HTML 和文本等多種格式發(fā)送和接收,可以在不重新刷新頁(yè)面的情況下與服務(wù)器通信辆苔,交換數(shù)據(jù),更新頁(yè)面扼劈;是一種技術(shù)方案,但并不是一種新的編程語(yǔ)言新技術(shù)驻啤。它依賴的是現(xiàn)有的 CSS/HTML/Javascript,而其中最核心的依賴是瀏覽器提供的 XMLHttpRequest 對(duì)象荐吵,是這個(gè)對(duì)象使得瀏覽器可以發(fā)出 HTTP 請(qǐng)求與接受 HTTP 響應(yīng)骑冗。實(shí)現(xiàn)在頁(yè)面不刷新的情況下和服務(wù)器進(jìn)行數(shù)據(jù)交互。一句話實(shí)現(xiàn)兩者的關(guān)系:我們使用 XMLHttpRequest 對(duì)象來發(fā)送一個(gè)Ajax請(qǐng)求先煎。

  • 主要作用:

    • 在不重新加載頁(yè)面的情況下發(fā)送請(qǐng)求給服務(wù)器贼涩。
    • 接受并使用從服務(wù)器發(fā)來的數(shù)據(jù)。
  • 優(yōu)點(diǎn):

    1. 無刷新更新數(shù)據(jù)薯蝎。

      AJAX最大優(yōu)點(diǎn)就是能在不刷新整個(gè)頁(yè)面的前提下與服務(wù)器通信維護(hù)數(shù)據(jù)遥倦。這使得Web應(yīng)用程序更為迅捷地響應(yīng)用戶交互,并避免了在網(wǎng)絡(luò)上發(fā)送那些沒有改變的信息占锯,減少用戶等待時(shí)間袒哥,帶來非常好的用戶體驗(yàn)。

    2. 異步與服務(wù)器通信消略。

      AJAX使用異步方式與服務(wù)器通信堡称,不需要打斷用戶的操作,具有更加迅速的響應(yīng)能力艺演。優(yōu)化了Browser和Server之間的溝通却紧,減少不必要的數(shù)據(jù)傳輸、時(shí)間及降低網(wǎng)絡(luò)上數(shù)據(jù)流量胎撤。

    3. 前端和后端負(fù)載平衡啄寡。

      AJAX可以把以前一些服務(wù)器負(fù)擔(dān)的工作轉(zhuǎn)嫁到客戶端,利用客戶端閑置的能力來處理哩照,減輕服務(wù)器和帶寬的負(fù)擔(dān),節(jié)約空間和寬帶租用成本懒浮。并且減輕服務(wù)器的負(fù)擔(dān)飘弧,AJAX的原則是“按需取數(shù)據(jù)”,可以最大程度的減少冗余請(qǐng)求和響應(yīng)對(duì)服務(wù)器造成的負(fù)擔(dān)砚著,提升站點(diǎn)性能次伶。

    4. 基于標(biāo)準(zhǔn)被廣泛支持。

      AJAX基于標(biāo)準(zhǔn)化的并被廣泛支持的技術(shù)稽穆,不需要下載瀏覽器插件或者小程序冠王,但需要客戶允許JavaScript在瀏覽器上執(zhí)行。隨著Ajax的成熟舌镶,一些簡(jiǎn)化Ajax使用方法的程序庫(kù)也相繼問世柱彻。同樣豪娜,也出現(xiàn)了另一種輔助程序設(shè)計(jì)的技術(shù),為那些不支持JavaScript的用戶提供替代功能哟楷。

    5. 界面與應(yīng)用分離瘤载。

      Ajax使WEB中的界面與應(yīng)用分離(也可以說是數(shù)據(jù)與呈現(xiàn)分離),有利于分工合作卖擅、減少非技術(shù)人員對(duì)頁(yè)面的修改造成的WEB應(yīng)用程序錯(cuò)誤鸣奔、提高效率、也更加適用于現(xiàn)在的發(fā)布系統(tǒng)惩阶。

  • 缺點(diǎn)

    1. AjAX干掉了Back和加入收藏書簽功能挎狸,即對(duì)瀏覽器機(jī)制的破壞。

      對(duì)應(yīng)用Ajax最主要的批評(píng)就是断楷,它可能破壞瀏覽器的后退與加入收藏書簽功能锨匆。在動(dòng)態(tài)更新頁(yè)面的情況下,用戶無法回到前一個(gè)頁(yè)面狀態(tài)脐嫂,這是因?yàn)闉g覽器僅能記下歷史記錄中的靜態(tài)頁(yè)面统刮。一個(gè)被完整讀入的頁(yè)面與一個(gè)已經(jīng)被動(dòng)態(tài)修改過的頁(yè)面之間的可能差別非常微妙;用戶通常都希望單擊后退按鈕账千,就能夠取消他們的前一次操作侥蒙,但是在Ajax應(yīng)用程序中,卻無法這樣做匀奏。不過開發(fā)者已想出了種種辦法來解決這個(gè)問題鞭衩,HTML5 之前的方法大多是在用戶單擊后退按鈕訪問歷史記錄時(shí),通過創(chuàng)建或使用一個(gè)隱藏的IFRAME來重現(xiàn)頁(yè)面上的變更娃善。(例如论衍,當(dāng)用戶在Google Maps中單擊后退時(shí),它在一個(gè)隱藏的IFRAME中進(jìn)行搜索聚磺,然后將搜索結(jié)果反映到Ajax元素上坯台,以便將應(yīng)用程序狀態(tài)恢復(fù)到當(dāng)時(shí)的狀態(tài))。
      關(guān)于無法將狀態(tài)加入收藏或書簽的問題瘫寝,HTML5之前的一種方式是使用URL片斷標(biāo)識(shí)符(通常被稱為錨點(diǎn)蜒蕾,即URL中#后面的部分)來保持追蹤,允許用戶回到指定的某個(gè)應(yīng)用程序狀態(tài)焕阿。(許多瀏覽器允許JavaScript動(dòng)態(tài)更新錨點(diǎn)咪啡,這使得Ajax應(yīng)用程序能夠在更新顯示內(nèi)容的同時(shí)更新錨點(diǎn)。)HTML5 以后可以直接操作瀏覽歷史暮屡,并以字符串形式存儲(chǔ)網(wǎng)頁(yè)狀態(tài)撤摸,將網(wǎng)頁(yè)加入網(wǎng)頁(yè)收藏夾或書簽時(shí)狀態(tài)會(huì)被隱形地保留。上述兩個(gè)方法也可以同時(shí)解決無法后退的問題。

    2. AJAX的安全問題准夷。
      AJAX技術(shù)給用戶帶來很好的用戶體驗(yàn)的同時(shí)也對(duì)IT企業(yè)帶來了新的安全威脅钥飞,Ajax技術(shù)就如同對(duì)企業(yè)數(shù)據(jù)建立了一個(gè)直接通道。這使得開發(fā)者在不經(jīng)意間會(huì)暴露比以前更多的數(shù)據(jù)和服務(wù)器邏輯冕象。Ajax的邏輯可以對(duì)客戶端的安全掃描技術(shù)隱藏起來代承,允許黑客從遠(yuǎn)端服務(wù)器上建立新的攻擊。還有Ajax也難以避免一些已知的安全弱點(diǎn)渐扮,諸如跨站點(diǎn)腳步攻擊论悴、SQL注入攻擊和基于Credentials的安全漏洞等等。

    3. 因?yàn)榫W(wǎng)絡(luò)延遲需要給用戶提供必要提示
      進(jìn)行Ajax開發(fā)時(shí)墓律,網(wǎng)絡(luò)延遲——即用戶發(fā)出請(qǐng)求到服務(wù)器發(fā)出響應(yīng)之間的間隔——需要慎重考慮膀估。如果不給予用戶明確的回應(yīng),沒有恰當(dāng)?shù)念A(yù)讀數(shù)據(jù)耻讽,或者對(duì)XMLHttpRequest的不恰當(dāng)處理察纯,都會(huì)使用戶感到厭煩。通常的解決方案是针肥,使用一個(gè)可視化的組件來告訴用戶系統(tǒng)正在進(jìn)行后臺(tái)操作并且正在讀取數(shù)據(jù)和內(nèi)容饼记。

參考:MDN掘金

題目2: 前后端開發(fā)聯(lián)調(diào)需要注意哪些事情慰枕?后端接口完成前如何 mock 數(shù)據(jù)具则?

在開發(fā)之前,前后端需要協(xié)作商定數(shù)據(jù)和接口的各項(xiàng)細(xì)節(jié)具帮,后端負(fù)責(zé)提供數(shù)據(jù)博肋,前端負(fù)責(zé)展示數(shù)據(jù)(根據(jù)數(shù)據(jù)負(fù)責(zé)頁(yè)面的開發(fā))

  • 前后端開發(fā)聯(lián)調(diào)注意事項(xiàng):

    • URL:接口名稱
    • 發(fā)送請(qǐng)求的參數(shù)和格式(get/post)
    • 數(shù)據(jù)響應(yīng)的數(shù)據(jù)格式(數(shù)組/對(duì)象)
    • 根據(jù)前后端約定,整理接口文檔
  • 如何 mock 數(shù)據(jù)

    • 搭建 Web 服務(wù)器
    • 根據(jù)接口文檔仿造數(shù)據(jù)
    • 關(guān)聯(lián)前后端文件蜂厅,開啟 Web 服務(wù)器
    • 驗(yàn)證前端頁(yè)面功能及顯示是否正確

題目3:點(diǎn)擊按鈕匪凡,使用 ajax 獲取數(shù)據(jù),如何在數(shù)據(jù)到來之前防止重復(fù)點(diǎn)擊?

  • 通過設(shè)置狀態(tài)鎖來判斷是否正在請(qǐng)求中掘猿,如果是則不響應(yīng)病游,如果不是則請(qǐng)求數(shù)據(jù),詳細(xì)請(qǐng)看代碼:請(qǐng)點(diǎn)擊

題目4:實(shí)現(xiàn)加載更多的功能稠通,代碼提交到 github

加載更多截圖

點(diǎn)擊查看

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末礁遵,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子采记,更是在濱河造成了極大的恐慌,老刑警劉巖政勃,帶你破解...
    沈念sama閱讀 212,816評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件唧龄,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡奸远,警方通過查閱死者的電腦和手機(jī)既棺,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,729評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門讽挟,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人丸冕,你說我怎么就攤上這事耽梅。” “怎么了胖烛?”我有些...
    開封第一講書人閱讀 158,300評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵眼姐,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我佩番,道長(zhǎng)众旗,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,780評(píng)論 1 285
  • 正文 為了忘掉前任趟畏,我火速辦了婚禮贡歧,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘赋秀。我一直安慰自己利朵,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,890評(píng)論 6 385
  • 文/花漫 我一把揭開白布猎莲。 她就那樣靜靜地躺著绍弟,像睡著了一般。 火紅的嫁衣襯著肌膚如雪益眉。 梳的紋絲不亂的頭發(fā)上晌柬,一...
    開封第一講書人閱讀 50,084評(píng)論 1 291
  • 那天,我揣著相機(jī)與錄音郭脂,去河邊找鬼年碘。 笑死,一個(gè)胖子當(dāng)著我的面吹牛展鸡,可吹牛的內(nèi)容都是我干的屿衅。 我是一名探鬼主播,決...
    沈念sama閱讀 39,151評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼莹弊,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼涤久!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起忍弛,我...
    開封第一講書人閱讀 37,912評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤响迂,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后细疚,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蔗彤,經(jīng)...
    沈念sama閱讀 44,355評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡凸郑,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,666評(píng)論 2 327
  • 正文 我和宋清朗相戀三年蝇更,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了馋缅。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片取刃。...
    茶點(diǎn)故事閱讀 38,809評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖待侵,靈堂內(nèi)的尸體忽然破棺而出丢早,到底是詐尸還是另有隱情,我是刑警寧澤秧倾,帶...
    沈念sama閱讀 34,504評(píng)論 4 334
  • 正文 年R本政府宣布怨酝,位于F島的核電站,受9級(jí)特大地震影響中狂,放射性物質(zhì)發(fā)生泄漏凫碌。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,150評(píng)論 3 317
  • 文/蒙蒙 一胃榕、第九天 我趴在偏房一處隱蔽的房頂上張望盛险。 院中可真熱鬧,春花似錦勋又、人聲如沸苦掘。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)鹤啡。三九已至,卻和暖如春蹲嚣,著一層夾襖步出監(jiān)牢的瞬間递瑰,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,121評(píng)論 1 267
  • 我被黑心中介騙來泰國(guó)打工隙畜, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留抖部,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,628評(píng)論 2 362
  • 正文 我出身青樓议惰,卻偏偏與公主長(zhǎng)得像慎颗,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子言询,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,724評(píng)論 2 351

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