進階12:ajax實踐

題目1: ajax 是什么摧冀?有什么作用索昂?

  • 1.ajax是什么?
    Ajax全稱為"Asynchronous JavaScript and XML"(異步JavaScript和XML),是指一種創(chuàng)建交互式網(wǎng)頁應用的網(wǎng)頁開發(fā)技術缤至,是一種在無需重新加載整個網(wǎng)頁的情況下康谆,能夠更新部分網(wǎng)頁的技術。通過在后臺與服務器進行少量數(shù)據(jù)交換月洛,Ajax 可以使網(wǎng)頁實現(xiàn)異步更新孽锥。這意味著可以在不重新加載整個網(wǎng)頁的情況下,對網(wǎng)頁的某部分進行更新唬涧。
    2.Ajax = 異步 JavaScriptXML標準通用標記語言的子集)
    3.Ajax是一種技術方案,但并不是一種新的編程語言新技術盛撑。它依賴的是現(xiàn)有的CSS/HTML/Javascript撵彻,而其中最核心的依賴是瀏覽器提供的XMLHttpRequest對象实牡,是這個對象使得瀏覽器可以發(fā)出HTTP請求與接受HTTP響應。實現(xiàn)在頁面不刷新的情況下和服務器進行數(shù)據(jù)交互碗短。一句話實現(xiàn)兩者的關系:我們使用XMLHttpRequest對象來發(fā)送一個Ajax請求题涨。

  • 2.ajax作用:
    傳統(tǒng)的WEB應用程序模型是這樣工作的:用戶的界面操作觸發(fā)HTTP請求总滩,服務器在接收到請求之后進行一些業(yè)務邏輯處理闰渔,如保存數(shù)據(jù)等铐望,然后向客戶端返回一個HTML頁面。但這種方式并沒有給予用戶很好的應用體驗督弓,當服務器在處理數(shù)據(jù)的時候乒验,用戶則處于等待的狀態(tài),每一步操作都需要等待狂塘,太多的等待會使用戶越來越?jīng)]有耐心虱痕。而Ajax則大不相同部翘,它通過Ajax引擎,使得應用過程很自然新思,操作很流暢,因為其只和服務器交換有用的數(shù)據(jù)纵刘,而頁面顯示等不必要的數(shù)據(jù)則不再重新加載假哎。Ajax引擎其實就是JavaScript鞍历、XML、XMLHttpRequest等等各項技術的綜合應用惧蛹。
    通過 Ajax,我們可以使得客戶端得到豐富的應用體驗及交換操作迅腔,而用戶不會感覺到有網(wǎng)頁提交或刷新的過程靠娱,頁面也不需要被重新加載,應用的數(shù)據(jù)交換都被隱藏掺出。

  • 3.ajax優(yōu)缺點:

    • 優(yōu)點:
      • 更新數(shù)據(jù)頁面無需刷新苫费,用戶體驗更佳
      • 使用異步方式與服務器通信汤锨,響應速度更快
      • 可將服務器以前負擔的一些工作轉嫁到客戶端,利用客戶端的閑置能力來處理百框,減輕服務器和帶寬的負擔闲礼,節(jié)約空間和寬帶租用成本。AJAX的原則是“按需取數(shù)據(jù)”铐维,可最大程度減少冗余請求
      • 作為基于標準化的并被廣泛支持的技術柬泽,無需下載插件或小程序
      • 使因特網(wǎng)應用程序更小、更快嫁蛇、更友好
    • 缺點:
      • 不支持瀏覽器back按鈕
      • AJAX暴露了與服務器交互的細節(jié)帶來安全問題
      • 對搜索引擎的支持較弱
      • 破壞了程序的異常機制
      • 不容易調試

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

在開發(fā)之前睬棚,前后端需要協(xié)作商定數(shù)據(jù)和接口的各項細節(jié),后端負責提供數(shù)據(jù)抑党,前端負責展示數(shù)據(jù)(根據(jù)數(shù)據(jù)負責頁面的開發(fā))

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

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

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

題目3:點擊按鈕底靠,使用 ajax 獲取數(shù)據(jù)害晦,如何在數(shù)據(jù)到來之前防止重復點擊?

var isLoading = false //添加狀態(tài)鎖,初始為false,用于判斷是否在加載數(shù)據(jù)
btn.addEventListener('click',function(){
       if(!isLoading){
          return;   //如果正在請求數(shù)據(jù)暑中,這次點擊什么都不做
       }
     var xhr = new XMLHttpRequest()
     xhr.onreadystatechange = function(){
       if(xhr.readystate === 4){
          if(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304){
              console.log(xhr.responseText)
       }else{
              console.log("error")
       }
       isLoading = false;  //readystate = 4數(shù)據(jù)到來壹瘟,狀態(tài)鎖變?yōu)閒alse,可以再次點擊
       }
       xhr.open('get',url,true);
       xhr.send()
       isloading = true //數(shù)據(jù)發(fā)送,進入等待數(shù)據(jù)狀態(tài)鳄逾,狀態(tài)鎖變?yōu)閠rue
})

題目4:實現(xiàn)加載更多的功能俐筋,效果范例

實現(xiàn)代碼:
Github
本地mock成功:

本地mock成功.png

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末严衬,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子笆呆,更是在濱河造成了極大的恐慌请琳,老刑警劉巖粱挡,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異俄精,居然都是意外死亡询筏,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進店門竖慧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來嫌套,“玉大人,你說我怎么就攤上這事圾旨□馓郑” “怎么了?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵砍的,是天一觀的道長痹筛。 經(jīng)常有香客問我,道長廓鞠,這世上最難降的妖魔是什么帚稠? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮床佳,結果婚禮上滋早,老公的妹妹穿的比我還像新娘。我一直安慰自己砌们,他們只是感情好杆麸,可當我...
    茶點故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著怨绣,像睡著了一般角溃。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上篮撑,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天减细,我揣著相機與錄音,去河邊找鬼赢笨。 笑死未蝌,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的茧妒。 我是一名探鬼主播萧吠,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼桐筏!你這毒婦竟也來了纸型?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎狰腌,沒想到半個月后除破,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡琼腔,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年瑰枫,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片丹莲。...
    茶點故事閱讀 38,599評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡光坝,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出甥材,到底是詐尸還是另有隱情盯另,我是刑警寧澤,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布擂达,位于F島的核電站土铺,受9級特大地震影響,放射性物質發(fā)生泄漏板鬓。R本人自食惡果不足惜悲敷,卻給世界環(huán)境...
    茶點故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望俭令。 院中可真熱鬧后德,春花似錦、人聲如沸抄腔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽赫蛇。三九已至绵患,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間悟耘,已是汗流浹背落蝙。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留暂幼,地道東北人筏勒。 一個月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像旺嬉,于是被迫代替她去往敵國和親管行。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,465評論 2 348

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