進(jìn)階任務(wù)12-AJAX

題目1: ajax 是什么?有什么作用?

AJAX(Asynchronous JavaScript + XML),異步的JavaScript和XML,它是利用現(xiàn)有的HTML或XHTML,層疊樣式表,JavaScript,文檔對象模型,XML、XSLT,最重要的是XMLHttpRequest對象等這些技術(shù)結(jié)合在Ajax模型中,從而使得web應(yīng)用程序能夠快速地對用戶界面進(jìn)行增量更新,而無需重新加載整個瀏覽器頁面。這使得應(yīng)用程序更快、更靈敏地響應(yīng)用戶操作。

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

** 前后端開發(fā)聯(lián)調(diào)需要注意哪些事情: **
約定數(shù)據(jù): 后端數(shù)據(jù)寫好,放在模板里,前端可以寫頁面,互不影響
約定接口: 請求和響應(yīng)的格式;接口名稱,請求參數(shù),響應(yīng)
**后端接口完成前如何mock數(shù)據(jù) **
mock數(shù)據(jù)指的是在后端開發(fā)沒有完成時,前端可以通過mock方法搭建本地服務(wù)器,模擬后臺數(shù)據(jù)來實(shí)現(xiàn)數(shù)據(jù)交互的效果。
可以安裝server-mock,這樣不需要特地去寫一個后臺的處理頁面文件來訪問數(shù)據(jù)。

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

設(shè)置一個變量(狀態(tài)鎖)isDataArrive=true,監(jiān)聽按鈕點(diǎn)擊事件,如果數(shù)據(jù)還沒發(fā)送過來
if(!isDataArrive) return,那么這次點(diǎn)擊什么也不做。請求數(shù)據(jù)完成后,打開鎖,最后在發(fā)送請求之前,再做個標(biāo)記加上狀態(tài)鎖,設(shè)置為flase。

  var isDataArrive = true;//聲明狀態(tài)鎖,默認(rèn)打開
    btn.addEventListener("click",function(){
        if (!isDataArrive)  return
        var xhr = new XMLHttpRequest();
        xhr.onreadystatechange = function(){
            if (xhr.readystate === 4) {
                if (xhr.readystate === 200||xhr.readystate ===304) {
                    //dosomething
                }
                isDataArrive = true;
            }
        }
        xhr.open('get','/index?length',true)
        xhr.send()
        isDataArrive = false;//上鎖,禁止在請求完成前發(fā)請求
    })
</script>

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

效果范例

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

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

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