1.AJAX 是什么跷车?有什么作用?
答:AJAX全稱(Asynchronous JavaScript and XML)是指異步的JavaScript和XML橱野。
AJAX是一種無須刷新頁面就可以為頁面中的某一部分加載數(shù)據(jù)的技術(shù)朽缴,數(shù)據(jù)通常以JSON的格式來進(jìn)行傳送,是一種創(chuàng)建快速動態(tài)網(wǎng)頁的技術(shù)水援。
傳統(tǒng)網(wǎng)頁不使用AJAX如果要得到新的內(nèi)容則必須刷新整個頁面密强,但是使用AJAX就可以不刷新茅郎。
AJAX通過在后臺與服務(wù)器進(jìn)行少量的數(shù)據(jù)交換,可以使網(wǎng)頁實現(xiàn)異步更新或渤,從而節(jié)省用戶的流量及時間系冗,提高用戶體驗。
2.前后端開發(fā)聯(lián)調(diào)需要注意哪些事情薪鹦?后端接口完成前如何 mock 數(shù)據(jù)掌敬?
答:需要注意:1前后端約定好接口文檔并指定負(fù)責(zé)人進(jìn)行后續(xù)撰寫和維護(hù)
2.約定好接口數(shù)據(jù)的類型json、XML還是text等池磁。
3.約定好頁面渲染用到的數(shù)據(jù)奔害。
完成mock數(shù)據(jù):1.使用server-mock或者mock.js等數(shù)據(jù)模擬工具。
2.自己搭建服務(wù)器地熄,并使用后端語言PHP华临、Java去模擬數(shù)據(jù)。
3.使用XAMPP等工具端考,編寫PHP文件來進(jìn)行測試雅潭。
3.**點擊按鈕,使用 ajax 獲取數(shù)據(jù)却特,如何在數(shù)據(jù)到來之前防止重復(fù)點擊?
答:通過設(shè)置狀態(tài)鎖的方法來防止:
var isLoading = false
btn.addEventListener("click",function(){
if(isLoading){
return
}
else{
isloading = true
//to do....
isloading = false
}
},false)
還可以使用:setTimeout讓ajax請求在多少毫秒之后發(fā)出寻馏,中間只要點擊就重新計時,以最后一次為準(zhǔn)核偿。
封裝一個 ajax 函數(shù),能通過如下方式調(diào)用
function ajax(objs){
var xhr = new XMLHttpRequest()
xhr.onreadystatechange = function(){
if(xhr.readyState == 4 && xhr.status == 200){
console.log(xhr.readyState)
}
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.setRequestHeader("Content-type","application/x-www-form-urlencoded")
xhr.send(dataSend)
}
}
2.實現(xiàn)如下加載更多的功能顽染。
代碼
新浪云實在搞不定呀