1. ajax是什么磺平?有什么作用创倔?
- ajax(全稱是Asynchronous JavaScript and XML)就是用JS向服務(wù)端發(fā)起請(qǐng)求翔脱,并獲取服務(wù)器返回的數(shù)據(jù)瘩扼。
- ajax的作用就是谆甜,在瀏覽器與Web服務(wù)器之間使用異步數(shù)據(jù)傳輸(HTTP請(qǐng)求)從服務(wù)器獲取數(shù)據(jù)〖拢可以在不重新加載整個(gè)網(wǎng)頁(yè)的情況下规辱,通過JavaScript發(fā)送請(qǐng)求、接受服務(wù)器傳來的數(shù)據(jù)栽燕,然后操作DOM將新數(shù)據(jù)對(duì)網(wǎng)頁(yè)的某部分進(jìn)行更新罕袋。
- ajax發(fā)起請(qǐng)求一共四步:
創(chuàng)建一個(gè)
XMLHttpRequest
對(duì)象
var xmlhttp = new XMLHttpRequest();-
監(jiān)聽請(qǐng)求成功后的狀態(tài)變化
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
// 處理數(shù)據(jù)
console.log(xmlhttp.responseText);
}
};
設(shè)置請(qǐng)求參數(shù)
xmlhttp.open("get/post", "url", true/false);發(fā)送請(qǐng)求
xmlhttp.send(str); // str為使用post方式發(fā)送請(qǐng)求時(shí),提交的參數(shù)碍岔,使用get方式提交請(qǐng)求時(shí)參數(shù)加在url后面
2. 前后端開發(fā)聯(lián)調(diào)需要注意那些事情浴讯?后端接口完成前如何mock數(shù)據(jù)?(npm install -g server-mock)
- 前后端開發(fā)聯(lián)調(diào)需要注意事項(xiàng):
- 約定數(shù)據(jù):有哪些需要傳輸?shù)臄?shù)據(jù)蔼啦,數(shù)據(jù)類型是什么榆纽;
- 約定接口:確定接口名稱及請(qǐng)求和響應(yīng)的格式,請(qǐng)求的參數(shù)名稱捏肢、響應(yīng)的數(shù)據(jù)格式奈籽;
- 根據(jù)這些約定整理成接口文檔
- 后端接口完成前mock數(shù)據(jù):可以根據(jù)接口文檔,使用假數(shù)據(jù)來驗(yàn)證我們制作的頁(yè)面響應(yīng)和接口是否正常鸵赫∫缕粒可以搭建php本地服務(wù)器用,php寫腳本提供臨時(shí)數(shù)據(jù)辩棒;也可使用server-mock或Mock.js狼忱,它能攔截ajax請(qǐng)求并根據(jù)請(qǐng)求中的內(nèi)容來隨機(jī)生成符合你要求的假數(shù)據(jù),模擬后端環(huán)境讓你完成對(duì)頁(yè)面和接口的測(cè)試一睁。
3. 點(diǎn)擊按鈕藕赞,使用ajax獲取數(shù)據(jù),如何在數(shù)據(jù)到來之前防止重復(fù)點(diǎn)擊卖局?
可以加一個(gè)狀態(tài)鎖,在觸發(fā)ajax前先上鎖双霍,之后用戶再怎么點(diǎn)擊都不會(huì)觸發(fā)ajax砚偶,直至代碼執(zhí)行完再開鎖批销。
更多方法參考:怎樣防止重復(fù)發(fā)送 Ajax 請(qǐng)求?—知乎
本文版權(quán)屬吳天喬所有染坯,轉(zhuǎn)載務(wù)必注明出處均芽。