Ajax基礎(chǔ)

ajax

  • Ajax全稱是Asynchronous JavaScript and XML,指的是通過Javascript腳本發(fā)起HTTP通信管钳;
  • 它可以使用原生的XMLHttpRequest對象向服務(wù)器發(fā)出HTTP請求,這個請求可以是同步或異步的(一般是異步),建立連接后可以得到服務(wù)器的數(shù)據(jù),我們就可以利用得到的數(shù)據(jù)通過JS來更新部分頁面而無需對整個頁面進(jìn)行刷新聪姿。

前后端開發(fā)聯(lián)調(diào)需要注意哪些事情?后端接口完成前如何 mock 數(shù)據(jù)乙嘀?

  • 前后端聯(lián)調(diào)需要注意:①確定接口信息末购;有哪些接口,哪些參數(shù)虎谢,以什么樣的請求等盟榴,一般要確定詳細(xì)的接口文檔。②確定要填充的數(shù)據(jù)婴噩,哪里填充圖片擎场,哪里填充文本信息等。
  • 在后端接口完成前几莽,我們可以根據(jù)接口文檔迅办,使用假數(shù)據(jù)來驗證我們制作的頁面響應(yīng)和接口是否正常,可以使用Mock.js银觅,它能攔截ajax請求并根據(jù)請求中的內(nèi)容來隨機(jī)生成符合你要求的假數(shù)據(jù),模擬后端環(huán)境讓你完成對頁面和接口的測試坏为。

點擊按鈕究驴,使用 ajax 獲取數(shù)據(jù),如何在數(shù)據(jù)到來之前防止重復(fù)點擊?

  • 自己的想法:依目前所學(xué)匀伏,只有js能實現(xiàn)洒忧;第一反應(yīng)是點擊后我把事件移除,你隨便點够颠,等加載完成后我在處理函數(shù)中再給它綁事件熙侍;或者我再給按鈕綁個事件,點擊后把自己的class給改掉讓ajax不能正常觸發(fā)履磨,不過改class可能會有改變樣式的風(fēng)險蛉抓,寫樣式時可以預(yù)先加個比如interrupt的類。
  • 網(wǎng)上搜索了一下:自己封裝加個比對-如果ajax請求一致的話就不進(jìn)行提交剃诅、提交后把button disable掉巷送、如果點完一個又去點了另外一個的話就abort之前的請求、加個setTimeout+clearTimeOut避免惡意快速點擊等矛辕。

用js封裝了一個 ajax 函數(shù)

function ajax(opts){
  var request = new  XMLHttpRequest();
  var str = '';
  for(i in opts.data){
    str += i+'='+opts.data[i]+'&';
  }
  str = str.substr(0, str.length-1); 
  if(opts.type.toLowerCase() === 'get'){
    request.open('GET', opts.url+'?'+str, true);
    request.send();
  }
  if(opt.type.toLowerCase() === 'post'){
    resuest.open('POST', opt.url, true);
    ajax.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    request.send(str);
  }
  request.onreadystatechange=function(){
    if(request.readyState==4 && request.status==200){
      var responsetext=JSON.parse(request.responseText);
      opts.success(responsetext);
    }
    if(request.status!==200){
      opts.error();
    }
  }
}
document.querySelector('#btn').addEventListener('click', function(){
  ajax({
    url: 'getData.php',   //接口地址
    type: 'get',               // 類型笑跛, post 或者 get,
    data: {
      username: 'xiaoming',
      password: 'abcd1234'
    },
    success: function(ret){
        console.log(ret);       // {status: 0}
      },
      error: function(){
       console.log('出錯了')
     }
   })
});
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末付魔,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子飞蹂,更是在濱河造成了極大的恐慌几苍,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,198評論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件陈哑,死亡現(xiàn)場離奇詭異妻坝,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)芥颈,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評論 3 398
  • 文/潘曉璐 我一進(jìn)店門惠勒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人爬坑,你說我怎么就攤上這事纠屋。” “怎么了盾计?”我有些...
    開封第一講書人閱讀 167,643評論 0 360
  • 文/不壞的土叔 我叫張陵售担,是天一觀的道長。 經(jīng)常有香客問我署辉,道長族铆,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,495評論 1 296
  • 正文 為了忘掉前任哭尝,我火速辦了婚禮哥攘,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘材鹦。我一直安慰自己逝淹,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 68,502評論 6 397
  • 文/花漫 我一把揭開白布桶唐。 她就那樣靜靜地躺著栅葡,像睡著了一般。 火紅的嫁衣襯著肌膚如雪尤泽。 梳的紋絲不亂的頭發(fā)上欣簇,一...
    開封第一講書人閱讀 52,156評論 1 308
  • 那天,我揣著相機(jī)與錄音坯约,去河邊找鬼熊咽。 笑死,一個胖子當(dāng)著我的面吹牛闹丐,可吹牛的內(nèi)容都是我干的网棍。 我是一名探鬼主播,決...
    沈念sama閱讀 40,743評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼妇智,長吁一口氣:“原來是場噩夢啊……” “哼滥玷!你這毒婦竟也來了氏身?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,659評論 0 276
  • 序言:老撾萬榮一對情侶失蹤惑畴,失蹤者是張志新(化名)和其女友劉穎蛋欣,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體如贷,經(jīng)...
    沈念sama閱讀 46,200評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡陷虎,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,282評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了杠袱。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片尚猿。...
    茶點故事閱讀 40,424評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖楣富,靈堂內(nèi)的尸體忽然破棺而出凿掂,到底是詐尸還是另有隱情,我是刑警寧澤纹蝴,帶...
    沈念sama閱讀 36,107評論 5 349
  • 正文 年R本政府宣布庄萎,位于F島的核電站,受9級特大地震影響塘安,放射性物質(zhì)發(fā)生泄漏糠涛。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,789評論 3 333
  • 文/蒙蒙 一兼犯、第九天 我趴在偏房一處隱蔽的房頂上張望忍捡。 院中可真熱鬧,春花似錦切黔、人聲如沸砸脊。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽脓规。三九已至栽连,卻和暖如春险领,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背秒紧。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評論 1 271
  • 我被黑心中介騙來泰國打工绢陌, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人熔恢。 一個月前我還...
    沈念sama閱讀 48,798評論 3 376
  • 正文 我出身青樓脐湾,卻偏偏與公主長得像,于是被迫代替她去往敵國和親叙淌。 傳聞我的和親對象是個殘疾皇子秤掌,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,435評論 2 359

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