進(jìn)階12 ajax實(shí)踐

使用server-mock

1.安裝nodejs
2.打開gitbash,執(zhí)行npm install -g server-mock
使用:搭建web服務(wù)器

  • 在終端cd到你的文件所在的文件夾
  • 執(zhí)行mock start可將當(dāng)前文件夾路徑作為根目錄啟動(dòng)一個(gè)web服務(wù)器
  • 在瀏覽器中輸入http://localhost:8080/xx.html

題目1: ajax 是什么舌劳?有什么作用坷檩?

Ajax(Asynchronous JavaScript + XML)是一種創(chuàng)建交互式網(wǎng)頁應(yīng)用的開發(fā)技術(shù)郎汪,利用Ajax可以向服務(wù)器請(qǐng)求額外的數(shù)據(jù)而無須卸載頁面,會(huì)帶來更好的用戶體驗(yàn)巾乳。
Ajax特點(diǎn):

  • Ajax通過JavaScript發(fā)送請(qǐng)求、接受服務(wù)器傳來的數(shù)據(jù),然后操作DOM將新數(shù)據(jù)對(duì)網(wǎng)頁的某部分進(jìn)行更新须眷。
  • Ajax的核心是XMLHttpRequest對(duì)象

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

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

  1. 約定接口數(shù)據(jù):包括接口名稱,前端需要傳的查詢數(shù)據(jù)格式,后臺(tái)返回的數(shù)據(jù)格式,請(qǐng)求方式(get/post/...)
  2. 根據(jù)約定生成接口文檔

mock數(shù)據(jù)方式:
使用nodejs搭建服務(wù)器筐骇,如安裝server-mock债鸡,在項(xiàng)目所在的根目錄創(chuàng)建router.js文件,修改router.js代碼铛纬,添加方法模擬接收前端請(qǐng)求厌均,并返回?cái)?shù)據(jù)。

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

添加一個(gè)判斷數(shù)據(jù)是否到來的isDataArrive變量,4中有實(shí)現(xiàn)擒悬。

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

參考代碼

//router.js
app.get('/loadMore', function(req, res) {

    var curIdx = req.query.index
    var len = req.query.length
    var data = []

    for(var i = 0; i < len; i++) {
        data.push('新聞' + (parseInt(curIdx) + i))
    }
    setTimeout(function(){
        res.send(data);
    },3000);
    
});
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8"/>
    <title>
      加載更多
    </title>
    <style>
      ul,li{
      margin: 0;
      padding: 0
    }
    #ct li{
      list-style:none;
      border: 1px solid #ccc;
      padding: 10px;
      margin-top: 10px;
      cursor:pointer;
    }
    #load-more{
      display: block;
      margin: 10px auto;
      text-align: center;
      cursor: pointer;
    }
    #load-more img{
      width: 40px;
      height: 40px;
    }
    .btn{
      display: inline-block;
      height: 40px;
      line-height: 40px;
      width: 80px;
      border: 1px solid #E27272;
      border-radius: 3px;
      text-align: center;
      text-decoration: none;
      color: #E27272;
    }
    .btn:hover{
      background: green;
      color: #fff;
    }
      </style>
  </head>
  <body>
    <ul id="ct">
    </ul>
    <a id="load-more" class="btn" href="javascript:void(0);">
      加載更多
    </a>
  </body>

  <script>
      var btn = document.querySelector("#load-more");
      var ct = document.querySelector('#ct');
      var pageIndex = 0;
      var isDateArrive = true;             //防止多次點(diǎn)擊造成的多次請(qǐng)求
      
      btn.onclick = function(){
        if(!isDateArrive){
            return;
        }
        var xhr = new XMLHttpRequest();
        xhr.onreadystatechange = function(){

          if(xhr.readyState === 4){
            if(xhr.status === 200 || xhr.statue === 304){
              var result = JSON.parse(xhr.responseText);
              var fragment = document.createDocumentFragment();
              for(var i=0;i<result.length;i++){
                var li = document.createElement('li');
                li.innerText = result[i];
                fragment.appendChild(li);
              }
              ct.appendChild(fragment);
              pageIndex += 5;
              isDateArrive = true;
            }
            else {
              console.log('出錯(cuò)了');
            }
          }
        }
        xhr.open('get','/loadMore?index='+pageIndex+'&length=5',true);
        xhr.send();
        isDateArrive = false;
      }     
    </script>
</html>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末懂牧,一起剝皮案震驚了整個(gè)濱河市侈净,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌僧凤,老刑警劉巖畜侦,帶你破解...
    沈念sama閱讀 221,820評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異躯保,居然都是意外死亡夏伊,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,648評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門吻氧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來溺忧,“玉大人,你說我怎么就攤上這事盯孙÷成” “怎么了?”我有些...
    開封第一講書人閱讀 168,324評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵振惰,是天一觀的道長(zhǎng)歌溉。 經(jīng)常有香客問我,道長(zhǎng)骑晶,這世上最難降的妖魔是什么痛垛? 我笑而不...
    開封第一講書人閱讀 59,714評(píng)論 1 297
  • 正文 為了忘掉前任,我火速辦了婚禮桶蛔,結(jié)果婚禮上匙头,老公的妹妹穿的比我還像新娘。我一直安慰自己仔雷,他們只是感情好阱冶,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,724評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著粪狼,像睡著了一般。 火紅的嫁衣襯著肌膚如雪惕稻。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,328評(píng)論 1 310
  • 那天蝙叛,我揣著相機(jī)與錄音俺祠,去河邊找鬼。 笑死借帘,一個(gè)胖子當(dāng)著我的面吹牛蜘渣,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播姻蚓,決...
    沈念sama閱讀 40,897評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼宋梧,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了狰挡?” 一聲冷哼從身側(cè)響起捂龄,我...
    開封第一講書人閱讀 39,804評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎加叁,沒想到半個(gè)月后倦沧,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,345評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡它匕,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,431評(píng)論 3 340
  • 正文 我和宋清朗相戀三年展融,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片豫柬。...
    茶點(diǎn)故事閱讀 40,561評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡告希,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出烧给,到底是詐尸還是另有隱情燕偶,我是刑警寧澤,帶...
    沈念sama閱讀 36,238評(píng)論 5 350
  • 正文 年R本政府宣布础嫡,位于F島的核電站指么,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏榴鼎。R本人自食惡果不足惜伯诬,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,928評(píng)論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望巫财。 院中可真熱鬧盗似,春花似錦、人聲如沸翁涤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,417評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽葵礼。三九已至号阿,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間鸳粉,已是汗流浹背扔涧。 一陣腳步聲響...
    開封第一講書人閱讀 33,528評(píng)論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留届谈,地道東北人枯夜。 一個(gè)月前我還...
    沈念sama閱讀 48,983評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像艰山,于是被迫代替她去往敵國和親湖雹。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,573評(píng)論 2 359

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

  • 1. ajax 是什么曙搬?有什么作用摔吏? Ajax(['eid??ks])是Asynchronous JavaScri...
    曉風(fēng)殘?jiān)?994閱讀 385評(píng)論 0 0
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)纵装,斷路器征讲,智...
    卡卡羅2017閱讀 134,702評(píng)論 18 139
  • 題目1: ajax 是什么?有什么作用橡娄?AJAX即“Asynchronous Javascript And XML...
    饑人谷_桶飯閱讀 298評(píng)論 0 0
  • 題目1:ajax 是什么诗箍?有什么作用? AJAX是Asynchronous Javascript and XML(...
    cheneyzhangch閱讀 198評(píng)論 0 0
  • 孩子的學(xué)習(xí)成績(jī)挽唉,一直都是一個(gè)家庭最為關(guān)注的點(diǎn)滤祖,每個(gè)家長(zhǎng)都對(duì)孩子的未來抱有很大的期待,考取大學(xué)瓶籽,有一個(gè)光明的未來匠童,但...
    新動(dòng)力閱讀 181評(píng)論 0 0