1.ajax 是什么?有什么作用?
ajax(Asynchronous JavaScript and XML)指的是異步的 JavaScript 和 XML,是一種無須刷新整個頁面就能為頁面中的某一部分加載數據的技術。數據通常以JSON的格式來進行傳送,是一種創(chuàng)建快速動態(tài)網頁的技術。
作用是通過在后臺與服務器進行少量數據交換,AJAX 可以使網頁實現(xiàn)異步更新。這意味著可以在不重新加載整個網頁的情況下,對網頁的某部分進行更新。
2.前后端開發(fā)聯(lián)調需要注意哪些事情?后端接口完成前如何 mock 數據?(npm install -g server-mock)
- 注意的是:
1.約定前后端聯(lián)調的時間;
2.約定雙方需要傳輸的數據和接口,在接口文檔中確定好參數的名稱、格式等;
3.約定請求和響應的格式和內容。 - 后端接口完成前 mock 數據:
1.自己模擬數據來進行MOCK;
2.使用server-mock或mock.js搭建模擬服務器,進行模擬測試;
3.使用XAMPP等工具,編寫PHP文件來進行測試。
3.點擊按鈕,使用 ajax 獲取數據,如何在數據到來之前防止重復點擊?
可以通過設置狀態(tài)鎖的方法來防止重復點擊
var isLoading = false
btn.addEventListener('click',function(){
if(isLoading){
return;
} else{
isloading = true;
//to do....
isloading = false;
}
},false)
4.封裝一個 ajax 函數,能通過如下方式調用
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);
}
}