1.ajax 是什么?有什么作用?
ajax(Asynchronous JavaScript and XML)指的是異步的 JavaScript 和 XML,是一種無須刷新整個頁面就能為頁面中的某一部分加載數(shù)據(jù)的技術(shù)。數(shù)據(jù)通常以JSON的格式來進(jìn)行傳送,是一種創(chuàng)建快速動態(tài)網(wǎng)頁的技術(shù)。
作用是通過在后臺與服務(wù)器進(jìn)行少量數(shù)據(jù)交換,AJAX 可以使網(wǎng)頁實(shí)現(xiàn)異步更新。這意味著可以在不重新加載整個網(wǎng)頁的情況下,對網(wǎng)頁的某部分進(jìn)行更新。
2.前后端開發(fā)聯(lián)調(diào)需要注意哪些事情?后端接口完成前如何 mock 數(shù)據(jù)?(npm install -g server-mock)
- 注意的是:
1.約定前后端聯(lián)調(diào)的時間;
2.約定雙方需要傳輸?shù)臄?shù)據(jù)和接口,在接口文檔中確定好參數(shù)的名稱、格式等;
3.約定請求和響應(yīng)的格式和內(nèi)容。 - 后端接口完成前 mock 數(shù)據(jù):
1.自己模擬數(shù)據(jù)來進(jìn)行MOCK;
2.使用server-mock或mock.js搭建模擬服務(wù)器,進(jìn)行模擬測試;
3.使用XAMPP等工具,編寫PHP文件來進(jìn)行測試。
3.點(diǎn)擊按鈕,使用 ajax 獲取數(shù)據(jù),如何在數(shù)據(jù)到來之前防止重復(fù)點(diǎn)擊?
可以通過設(shè)置狀態(tài)鎖的方法來防止重復(fù)點(diǎn)擊
var isLoading = false
btn.addEventListener('click',function(){
if(isLoading){
return;
} else{
isloading = true;
//to do....
isloading = false;
}
},false)
4.封裝一個 ajax 函數(shù),能通過如下方式調(diào)用
function ajax(objs){
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function(){
if(xhr.readyState == 4 && xhr.status == 200){
console.log(xhr.responseText);
}
if(xhr.readyState == 4 && xhr.status == 404){
console.log("Error!");
}
}
var dataSend = "";
for(var key in objs.data){
dataSend += key + "=" + objs.data[key] + "&";
}
dataSend = dataSend.substr(0,dataSend.length-1);
if(objs.type.toLowerCase() == "get"){
xhr.open("GET", objs.url + dataSend, false);
xhr.send();
}
if(objs.type.toLowerCase() == "post"){
xhr.open("POST", objs.url, false);
xhr.setRequsetHeader("Content-type", "application/x-www-form-urlencoded");
xhr.send(dataSend);
}
}