ajax

1、ajax 是什么信峻?有什么作用?

AJAX代表異步JavaScript和XML瓮床。簡(jiǎn)而言之盹舞,它是使用 XMLHttpRequest 對(duì)象與服務(wù)器端腳本進(jìn)行通信。它可以發(fā)送以及接收各種格式的信息隘庄,包括JSON踢步,XML,HTML丑掺,甚至文本文件获印。AJAX最吸引人的特性是,它的“異步”性質(zhì)街州,這意味著它可以做所有這一切兼丰,而不必刷新頁(yè)面。這讓您可以根據(jù)用戶事件更新頁(yè)面的某些部分唆缴。
AJAX的兩個(gè)主要功能允許您執(zhí)行以下操作:
1鳍征、向服務(wù)器發(fā)出請(qǐng)求,而不重新加載頁(yè)面
2琐谤、接收和處理服務(wù)器中的數(shù)據(jù)

2蟆技、前后端開發(fā)聯(lián)調(diào)需要注意哪些事情玩敏?后端接口完成前如何 mock 數(shù)據(jù)斗忌?

注意事項(xiàng)
約定數(shù)據(jù):有哪些需要傳輸?shù)臄?shù)據(jù)质礼,數(shù)據(jù)類型是什么;
約定接口:確定接口名稱及請(qǐng)求和響應(yīng)的格式织阳,請(qǐng)求的參數(shù)名稱眶蕉、響應(yīng)的數(shù)據(jù)格式;
根據(jù)這些約定整理成接口文檔
如何mock
1唧躲、將 mock 數(shù)據(jù)寫在代碼中造挽。

// $.ajax({
//   url: ‘https://cntchen.github.io/userInfo’,
//   type: 'GET',
//   success: function(dt) {
    var dt = {
      "isSuccess": true,
      "errMsg": "This is error.",
      "data": {
        "userName": "Cntchen",
        "about": "FE"
      },
    };
    if (dt.isSuccess) {
      render(dt.data);
    } else {
      console.log(dt.errMsg);
    }
//   },
//   fail: function() {}
// });

優(yōu)點(diǎn):可以快速修改數(shù)據(jù)
缺點(diǎn):無(wú)法模擬異步的網(wǎng)絡(luò)請(qǐng)求,無(wú)法測(cè)試網(wǎng)絡(luò)異常弄痹;聯(lián)調(diào)前需要做較多改動(dòng)饭入,增加最終上真實(shí)環(huán)境的切換成本。接口文檔變化需要手動(dòng)更新
2.搭建本地服務(wù)器
3.使用在線mock服務(wù)肛真,比如 https://www.easy-mock.com

3谐丢、點(diǎn)擊按鈕,使用 ajax 獲取數(shù)據(jù)蚓让,如何在數(shù)據(jù)到來(lái)之前防止重復(fù)點(diǎn)擊?

使用狀態(tài)鎖

var  lock=false,
       btn = document.qureySelector('#btn');
btn.addEventListener('click', function(){
    if(lock){
        return;
    }else{
        lock=true;
        ajax({
            ....
            lock=false   //收到響應(yīng)之后才把false賦值給lock
        })
    }
})

4乾忱、封裝一個(gè) ajax 函數(shù),能通過(guò)如下方式調(diào)用历极。后端在本地使用server-mock來(lái) mock 數(shù)據(jù)

 function ajax(opts) {
    var xmlhttp;
    if(window.XMLHttpRequest) {           //IE7+,chrome,Safari,Opera,Firefox
      xmlhttp = new XMLHttpRequest();
    } else {
      xmlhttp = new AcitveXObject("Microsoft.XMLHTTP");  //IE5,IE6
    }
    xmlhttp.onreadystatechange = function() {
      if(xmlhttp.readyState == 4 && xmlhttp.status == 200) {
        var json = JSON.parse(xmlhttp.responseText);
        opts.success(json);
      }
      if(xmlhttp.status == 404) {
        opts.error();
      }
    }
    var dataStr= '';
    for(var key in opts.data) {
      dataStr += key + '=' + opts.data[key] + '&';
    }
    dataStr = dataStr.substr(0,dataStr.length-1);
    if(opts.type.toLowerCase() == 'get') {
      xmlhttp.open(opts.type, opts.url + '?' + dataStr, true);
      xmlhttp.send();
    }
    if(opts.type.toLowerCase() == 'post') {
      xmlhttp.open(opts.type, opts.url, true);
      xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
      xmlhttp.send(dataStr);
    }
  }

https://segmentfault.com/a/1190000004322487

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末窄瘟,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子趟卸,更是在濱河造成了極大的恐慌蹄葱,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,366評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件锄列,死亡現(xiàn)場(chǎng)離奇詭異新蟆,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)右蕊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門琼稻,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人饶囚,你說(shuō)我怎么就攤上這事帕翻。” “怎么了萝风?”我有些...
    開封第一講書人閱讀 165,689評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵嘀掸,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我规惰,道長(zhǎng)睬塌,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,925評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮揩晴,結(jié)果婚禮上勋陪,老公的妹妹穿的比我還像新娘。我一直安慰自己硫兰,他們只是感情好诅愚,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,942評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著劫映,像睡著了一般违孝。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上泳赋,一...
    開封第一講書人閱讀 51,727評(píng)論 1 305
  • 那天雌桑,我揣著相機(jī)與錄音,去河邊找鬼祖今。 笑死筹燕,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的衅鹿。 我是一名探鬼主播撒踪,決...
    沈念sama閱讀 40,447評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼大渤!你這毒婦竟也來(lái)了制妄?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,349評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤泵三,失蹤者是張志新(化名)和其女友劉穎耕捞,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體烫幕,經(jīng)...
    沈念sama閱讀 45,820評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡俺抽,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,990評(píng)論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了较曼。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片磷斧。...
    茶點(diǎn)故事閱讀 40,127評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖捷犹,靈堂內(nèi)的尸體忽然破棺而出弛饭,到底是詐尸還是另有隱情,我是刑警寧澤萍歉,帶...
    沈念sama閱讀 35,812評(píng)論 5 346
  • 正文 年R本政府宣布侣颂,位于F島的核電站,受9級(jí)特大地震影響枪孩,放射性物質(zhì)發(fā)生泄漏憔晒。R本人自食惡果不足惜藻肄,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,471評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望拒担。 院中可真熱鬧嘹屯,春花似錦、人聲如沸澎蛛。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,017評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)谋逻。三九已至,卻和暖如春桐经,著一層夾襖步出監(jiān)牢的瞬間毁兆,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,142評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工阴挣, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留气堕,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,388評(píng)論 3 373
  • 正文 我出身青樓畔咧,卻偏偏與公主長(zhǎng)得像茎芭,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子誓沸,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,066評(píng)論 2 355

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

  • AJAX 原生js操作ajax 1.創(chuàng)建XMLHttpRequest對(duì)象 var xhr = new XMLHtt...
    碧玉含香閱讀 3,201評(píng)論 0 7
  • 瀏覽器與服務(wù)器之間梅桩,采用HTTP協(xié)議通信。用戶在瀏覽器地址欄鍵入一個(gè)網(wǎng)址拜隧,或者通過(guò)網(wǎng)頁(yè)表單向服務(wù)器提交內(nèi)容宿百,這時(shí)瀏...
    徐國(guó)軍_plus閱讀 364評(píng)論 0 4
  • 關(guān)鍵詞:Ajax 1. Ajax 是什么?有什么作用洪添? Ajax 全稱“Asynchronous Javascri...
    NathanYangcn閱讀 316評(píng)論 0 0
  • 2017年8月26日 周六 晴 今天老家的妹妹來(lái)了垦页,來(lái)吃她夢(mèng)寐以求的披薩! 早晨8點(diǎn)25分干奢,我們一大家子人...
    李墨兒媽媽閱讀 141評(píng)論 0 0
  • 石頭記的石頭也會(huì)褪色 不喜扔?xùn)|西的我 丟了它 被誰(shuí)撿走 抑或是又回歸了原子 不清楚 時(shí)間到底被誰(shuí)撿走 也不清楚 默...
    中習(xí)習(xí)閱讀 176評(píng)論 4 3