Ajax

ajax 是什么?有什么作用?

AJAX即Asynchronous Javascript And XML(異步JavaScript和XML),是指一種創(chuàng)建交互式網(wǎng)頁應(yīng)用的網(wǎng)頁開發(fā)技術(shù)。
AJAX = 異步 JavaScript和XML(標(biāo)準(zhǔn)通用標(biāo)記語言的子集)。
AJAX 是一種用于創(chuàng)建快速動(dòng)態(tài)網(wǎng)頁的技術(shù)。
通過在后臺(tái)與服務(wù)器進(jìn)行少量數(shù)據(jù)交換,AJAX 可以使網(wǎng)頁實(shí)現(xiàn)異步更新。這意味著可以在不重新加載整個(gè)網(wǎng)頁的情況下,對(duì)網(wǎng)頁的某部分進(jìn)行更新。
傳統(tǒng)的網(wǎng)頁(不使用 AJAX)如果需要更新內(nèi)容,必須重載整個(gè)網(wǎng)頁頁面。

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

前后端開發(fā)聯(lián)調(diào)需要注意以下事情:
約定數(shù)據(jù):約定好頁面需要的數(shù)據(jù)和數(shù)據(jù)類型
約定接口:約定接口的名稱、請(qǐng)求的參數(shù)、相應(yīng)的格式(成功或失敗分別返回什么)
將約定好的內(nèi)容整理成接口文檔和規(guī)范
后端接口完成前如何 mock 數(shù)據(jù)?
1.可以使用server-mock或mock.js搭建模擬服務(wù)器,進(jìn)行模擬測(cè)試
2.mock.js的github倉庫
3.server-mock的github倉庫
4.使用XAMPP等工具,編寫PHP文件來進(jìn)行測(cè)試

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

用添加狀態(tài)鎖的方法,在第一次請(qǐng)求的數(shù)據(jù)未到來之前,用戶的點(diǎn)擊失效,不會(huì)請(qǐng)求數(shù)據(jù)。

var isDataOk = true;
addEventLintener('click',function(){
  if(!isDataOk){
    return;
  }      //若數(shù)據(jù)未到來則退出函數(shù)
  var xhr = new XMLHttpRequest();
  xhr.onreadystatechange = function(){
    if(xhr.readyState === 4){
      if((xhr.status === 200||xhr.status ===304)){
      }
    }
  }
isDataOk = true;    //數(shù)當(dāng)狀態(tài)變?yōu)?時(shí),表示數(shù)據(jù)到來
xhr.open();
xhr.send();
isDataOk = false;  //在數(shù)據(jù)發(fā)送完成之后,表示數(shù)據(jù)還未到來,點(diǎn)擊無效
})

封裝一個(gè) ajax 函數(shù),能通過如下方式調(diào)用。后端在本地使用server-mock來 mock 數(shù)據(jù)

    function ajax(options){
      var xhr = new XMLHttpRequest();
      xhr.onreadystatechange = function(){
        if(xhr.readyState === 4){
          if(xhr.status === 200 || xhr.status ===304){
            var result = JSON.parse(xhr.responseText)
            options.success(result)
          }
          else{
            options.error()
          }
        }
        dataIsOk = true;
      }
      var query = '?'
      for(key in options.data){
        query += key + '=' + options.data[key] + '&'
      }
      query = query.substr(0,query.length-1)
      var url = options.url +query
      xhr.open(options.type,url,true)
      xhr.send()
      dataIsOk = false;
    }

實(shí)現(xiàn)加載更多的功能,后端在本地使用server-mock來模擬數(shù)據(jù)

代碼如下:

https://github.com/wzanbaichi/loadmore/blob/master/index.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 瀏覽器與服務(wù)器之間,采用HTTP協(xié)議通信。用戶在瀏覽器地址欄鍵入一個(gè)網(wǎng)址,或者通過網(wǎng)頁表單向服務(wù)器提交內(nèi)容,這時(shí)瀏...
    徐國軍_plus閱讀 435評(píng)論 0 4
  • ajax 是什么?有什么作用? AJAX的全稱是Asynchronous JavaScript and XML(異...
    cross_王閱讀 381評(píng)論 0 0
  • AJAX 原生js操作ajax 1.創(chuàng)建XMLHttpRequest對(duì)象 var xhr = new XMLHtt...
    碧玉含香閱讀 3,546評(píng)論 0 7
  • 關(guān)鍵詞:Ajax 1. Ajax 是什么?有什么作用? Ajax 全稱“Asynchronous Javascri...
    NathanYangcn閱讀 368評(píng)論 0 0
  • 有一些人,不管他做什么,總能做得比別人好,更要命的是,這個(gè)人還是在極短的時(shí)間內(nèi),就能做得比那些用了幾年甚至...
    耐心的獵人閱讀 456評(píng)論 0 0

友情鏈接更多精彩內(nèi)容