ajax實(shí)踐

1: ajax 是什么梁钾?有什么作用逊抡?

ajax是異步的js和XML(Async JavaScript And XML)冒嫡,是一種技術(shù)泛稱
可以異步傳遞數(shù)據(jù)和獲取數(shù)據(jù)孝凌,這就使ajax可以在不加載整個(gè)頁面的情況下對(duì)頁面局部更新,使用戶體驗(yàn)更佳瓣赂。

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

  • get還是post方法
  • 約定數(shù)據(jù)接口和格式牙勘,前端提供參數(shù)方面,后臺(tái)響應(yīng)時(shí)返回什么格式
  • 約定每次請(qǐng)求數(shù)據(jù)數(shù)量
    如何mock數(shù)據(jù)?
    使用server mock搭建本地服務(wù)器操禀,模擬網(wǎng)站后端颓屑,使用server-mock首先得下載nodejs揪惦,然后下載server-mock(npm install -g server-mock)器腋,下載完成后,在目標(biāo)文件文件夾創(chuàng)建一個(gè)router.js文件夾纫塌,用來接收和處理后端的請(qǐng)求文件(mock init可創(chuàng)建范例)措左;最后mock start啟動(dòng)一個(gè)web服務(wù)器

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

 var isDataArrive = true   //設(shè)置一個(gè)狀態(tài)鎖初始為true
    btn.addEventListener('click', function(e){
        e.preventDefault()
        if (!isDataArrive) {
            return          //數(shù)據(jù)沒到來時(shí)為true
        }   
        if(xhr.readyState === 4){
            if (xhr.status === 200 || xhr.status === 304) {
                //  dosomething
            }
            isDataArrive = true  //數(shù)據(jù)到來后變?yōu)閠rue
        }
    }

      xhr.open('get', '/loadmore?index='+ pageIndex +'&length=5', true)
      xhr.send()
      isDataArrive = false     //發(fā)送數(shù)據(jù)之后數(shù)據(jù)到來前點(diǎn)擊沒用
    })

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

<style type="text/css">
 .ct li {
        list-style: none;
        border:1px solid #ccc;
        padding: 10px;
        margin-bottom: 10px;
    }
.btn {
        display: block;
        width: 80px;
        height: 40px;
        line-height: 40px;
        border:1px solid;
        border-radius: 4px;
        text-align: center;
        text-decoration: none;
        margin:0 auto;
    }
    .btn:hover {
        background: red;
        color: #fff;
    }
</style>
<body>
  <ul class="ct">
    
  </ul>
  <a href="#" id="load-more" class="btn">加載更多</a>
  <script>
    var btn = document.querySelector('.btn') 
    var ct = document.querySelector('.ct')
    var pageIndex = 0
    var isDataArrive = true
    btn.addEventListener('click', function(e){
        e.preventDefault()
        if (!isDataArrive) {
            return
        }

       var xhr = new XMLHttpRequest()
       xhr.onreadystatechange = function(){
        if(xhr.readyState === 4){
            if (xhr.status === 200 || xhr.status === 304) {
              var result = JSON.parse(xhr.responseText)
              console.log(result)
              var fragment = document.createDocumentFragment()
              for(var i = 0;i < result.length;i++){
                var node = document.createElement('li')
                node.innerText = result[i]
                fragment.appendChild(node)
              }
                ct.appendChild(fragment)
                pageIndex = pageIndex +5
            }else {
                alert('出錯(cuò)了')
            }
            isDataArrive = true
        }
    }

      xhr.open('get', '/loadmore?index='+ pageIndex +'&length=5', true)
      xhr.send()
      isDataArrive = false
    })
  </script>


//后端
router.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)
  },5000)
})   
//模擬慢網(wǎng)速 
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末指蚁,一起剝皮案震驚了整個(gè)濱河市凝化,隨后出現(xiàn)的幾起案子搓劫,更是在濱河造成了極大的恐慌枪向,老刑警劉巖秘蛔,帶你破解...
    沈念sama閱讀 217,509評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件深员,死亡現(xiàn)場離奇詭異倦畅,居然都是意外死亡箱残,警方通過查閱死者的電腦和手機(jī)滔迈,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來被辑,“玉大人,你說我怎么就攤上這事敬惦∨卫恚” “怎么了?”我有些...
    開封第一講書人閱讀 163,875評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵俄删,是天一觀的道長宏怔。 經(jīng)常有香客問我,道長畴椰,這世上最難降的妖魔是什么臊诊? 我笑而不...
    開封第一講書人閱讀 58,441評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮斜脂,結(jié)果婚禮上抓艳,老公的妹妹穿的比我還像新娘儡首。我一直安慰自己,他們只是感情好氛濒,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,488評(píng)論 6 392
  • 文/花漫 我一把揭開白布炬灭。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪椎木。 梳的紋絲不亂的頭發(fā)上禽篱,一...
    開封第一講書人閱讀 51,365評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死猎醇,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播刨秆,決...
    沈念sama閱讀 40,190評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼缓醋,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼掂之!你這毒婦竟也來了动雹?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,062評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后无切,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體籍嘹,經(jīng)...
    沈念sama閱讀 45,500評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡异赫,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,706評(píng)論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了孕荠。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片个曙。...
    茶點(diǎn)故事閱讀 39,834評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖瑟捣,靈堂內(nèi)的尸體忽然破棺而出桑李,到底是詐尸還是另有隱情填大,我是刑警寧澤,帶...
    沈念sama閱讀 35,559評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站庶弃,受9級(jí)特大地震影響缴守,放射性物質(zhì)發(fā)生泄漏镇辉。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,167評(píng)論 3 328
  • 文/蒙蒙 一煎源、第九天 我趴在偏房一處隱蔽的房頂上張望手销。 院中可真熱鬧诈悍,春花似錦柄错、人聲如沸售貌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽快骗。三九已至娜庇,卻和暖如春塔次,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背名秀。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評(píng)論 1 269
  • 我被黑心中介騙來泰國打工励负, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人匕得。 一個(gè)月前我還...
    沈念sama閱讀 47,958評(píng)論 2 370
  • 正文 我出身青樓继榆,卻偏偏與公主長得像,于是被迫代替她去往敵國和親汁掠。 傳聞我的和親對(duì)象是個(gè)殘疾皇子略吨,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,779評(píng)論 2 354

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

  • ajax 是什么?有什么作用考阱? AJAX的全稱是Asynchronous JavaScript and XML(異...
    cross_王閱讀 334評(píng)論 0 0
  • 1. ajax 是什么翠忠?有什么作用? Ajax(['eid??ks])是Asynchronous JavaScri...
    曉風(fēng)殘?jiān)?994閱讀 382評(píng)論 0 0
  • 一羔砾、 ajax 是什么负间?有什么作用?AJAX全稱是“Asynchronous JavaScript and XML...
    崔敏嫣閱讀 367評(píng)論 1 0
  • 題目1: ajax 是什么姜凄?有什么作用政溃? 含義:腳本發(fā)起HTTP通信 作用:傳輸數(shù)據(jù)到服務(wù)器,監(jiān)聽狀態(tài)碼實(shí)現(xiàn)服務(wù)器...
    從前慢pearl閱讀 139評(píng)論 0 0
  • “我懷念那個(gè)帶有清新薄荷味的白色襯衫的少年态秧,懷念他上翹的嘴角和那句久違的‘阿宋’董虱。” 宋苡輕輕合上手賬本申鱼,抬頭...
    summerRAIN_CY閱讀 227評(píng)論 0 0