Ajax

ajax是什么?有什么作用?

Ajax可以把它當(dāng)做頁(yè)面與后端交接的微橋梁,可以實(shí)現(xiàn)異步操作,無(wú)須刷新整個(gè)頁(yè)面的情況下實(shí)現(xiàn)局部刷新,是前端開發(fā)人員必須掌握的一個(gè)技能;
大體步驟可以分為以下:
1.createXHR
2.xhr.open(type,url,boolean) //確定請(qǐng)求發(fā)送類型、URL、同步/異步
3.xhr.send() //發(fā)送到服務(wù)器

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

明確需要測(cè)試的數(shù)據(jù),邏輯測(cè)試需要清晰,前端發(fā)送什么數(shù)據(jù)給后臺(tái),后頭返回什么數(shù)據(jù)給前臺(tái),雙方約定好;后端接口完成前,搭建服務(wù)器,mock數(shù)據(jù),確定程序能跑起來(lái)。

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

<script>
var ct = document.querySelector("#ct");
        btn = document.querySelector("#btn");



var lock = true;
function ajax(opts){
    lock = false;
    var xhr = new XMLHttpRequest();
    xhr.onredaystatechange = function(){
        if(xhr.readyState===4 && xhr.status===200){
            var result = JSON.parse(xhr.responseText);
            opts.success(xhr.responseText);
            lock = true;
        }else if(xhr.readyState===4 && xhr.status!==200) {
            opts.error();
            lock = true;
        }
    }
    var urlStr ="";
    for(var key in opts.data){
        urlStr = key +"="+opts.data[key]+"$";
    }
    urlStr = urlStr.substring(0,urlStr.length-1);

    if(opts.type.toLowerCase()==="get"){
        xhr.open(opts.type,opts.url+"?"+urlStr,true);
        xhr.send();
    }
    if(opts.type.toLowerCase()==="post"){
        xhr.open(opts.type,opts.url,true);
        xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
        xhr.send(urlStr)
    }
}


btn.addEventListener("click",function(){
    if(lock===true){
        ajax(
        {
            url:'/more',
            type: 'post',
            data: {
                len: document.querySelectorAll('li').length
            },
            success: function(data){
                console.log(data);
            },
            error: function(){
                console.log('出錯(cuò)了')
            }
        })
    }
})
</script>

題目5:實(shí)現(xiàn)加載更多的功能

代碼

最后編輯于
?著作權(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)容

  • AJAX 原生js操作ajax 1.創(chuàng)建XMLHttpRequest對(duì)象 var xhr = new XMLHtt...
    碧玉含香閱讀 3,563評(píng)論 0 7
  • 大家好,我是IT修真院深圳分院第3期的學(xué)員,一枚正直純潔善良的前端程序員,今天給大家分享一下,修真院官網(wǎng)前端工程師...
    大大頭大閱讀 8,086評(píng)論 1 72
  • 關(guān)鍵詞:Ajax 1. Ajax 是什么?有什么作用? Ajax 全稱“Asynchronous Javascri...
    NathanYangcn閱讀 372評(píng)論 0 0
  • ajax作為前端開發(fā)必需的基礎(chǔ)能力之一,你可能會(huì)使用它,但并不一定懂得其原理,以及更深入的服務(wù)器通信相關(guān)的知識(shí)。在...
    蕭玄辭閱讀 887評(píng)論 0 0
  • 瀏覽器與服務(wù)器之間,采用HTTP協(xié)議通信。用戶在瀏覽器地址欄鍵入一個(gè)網(wǎng)址,或者通過網(wǎng)頁(yè)表單向服務(wù)器提交內(nèi)容,這時(shí)瀏...
    徐國(guó)軍_plus閱讀 439評(píng)論 0 4

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