ajax 是什么?有什么作用?
AJAX即Asynchronous Javascript And XML(異步JavaScript和XML),是指一種創建交互式網頁應用的網頁開發技術。
AJAX = 異步 JavaScript和XML(標準通用標記語言的子集)。
AJAX 是一種用于創建快速動態網頁的技術。
通過在后臺與服務器進行少量數據交換,AJAX 可以使網頁實現異步更新。這意味著可以在不重新加載整個網頁的情況下,對網頁的某部分進行更新。
傳統的網頁(不使用 AJAX)如果需要更新內容,必須重載整個網頁頁面。
前后端開發聯調需要注意哪些事情?后端接口完成前如何 mock 數據?
前后端開發聯調需要注意以下事情:
約定數據:約定好頁面需要的數據和數據類型
約定接口:約定接口的名稱、請求的參數、相應的格式(成功或失敗分別返回什么)
將約定好的內容整理成接口文檔和規范
后端接口完成前如何 mock 數據?
1.可以使用server-mock或mock.js搭建模擬服務器,進行模擬測試
2.mock.js的github倉庫
3.server-mock的github倉庫
4.使用XAMPP等工具,編寫PHP文件來進行測試
點擊按鈕,使用 ajax 獲取數據,如何在數據到來之前防止重復點擊?
用添加狀態鎖的方法,在第一次請求的數據未到來之前,用戶的點擊失效,不會請求數據。
var isDataOk = true;
addEventLintener('click',function(){
if(!isDataOk){
return;
} //若數據未到來則退出函數
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function(){
if(xhr.readyState === 4){
if((xhr.status === 200||xhr.status ===304)){
}
}
}
isDataOk = true; //數當狀態變為4時,表示數據到來
xhr.open();
xhr.send();
isDataOk = false; //在數據發送完成之后,表示數據還未到來,點擊無效
})
封裝一個 ajax 函數,能通過如下方式調用。后端在本地使用server-mock來 mock 數據
function ajax(options){
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function(){
if(xhr.readyState === 4){
if(xhr.status === 200 || xhr.status ===304){
var result = JSON.parse(xhr.responseText)
options.success(result)
}
else{
options.error()
}
}
dataIsOk = true;
}
var query = '?'
for(key in options.data){
query += key + '=' + options.data[key] + '&'
}
query = query.substr(0,query.length-1)
var url = options.url +query
xhr.open(options.type,url,true)
xhr.send()
dataIsOk = false;
}
實現加載更多的功能,后端在本地使用server-mock來模擬數據
代碼如下:
https://github.com/wzanbaichi/loadmore/blob/master/index.html