1.AJAX 是什么?有什么作用?
答:AJAX全称(Asynchronous JavaScript and XML)是指异步的JavaScript和XML。
AJAX是一种无须刷新页面就可以为页面中的某一部分加载数据的技术,数据通常以JSON的格式来进行传送,是一种创建快速动态网页的技术。
传统网页不使用AJAX如果要得到新的内容则必须刷新整个页面,但是使用AJAX就可以不刷新。
AJAX通过在后台与服务器进行少量的数据交换,可以使网页实现异步更新,从而节省用户的流量及时间,提高用户体验。
2.前后端开发联调需要注意哪些事情?后端接口完成前如何 mock 数据?
答:需要注意:1前后端约定好接口文档并指定负责人进行后续撰写和维护
2.约定好接口数据的类型json、XML还是text等。
3.约定好页面渲染用到的数据。
完成mock数据:1.使用server-mock或者mock.js等数据模拟工具。
2.自己搭建服务器,并使用后端语言PHP、Java去模拟数据。
3.使用XAMPP等工具,编写PHP文件来进行测试。
3.**点击按钮,使用 ajax 获取数据,如何在数据到来之前防止重复点击?
答:通过设置状态锁的方法来防止:
var isLoading = false
btn.addEventListener("click",function(){
if(isLoading){
return
}
else{
isloading = true
//to do....
isloading = false
}
},false)
还可以使用:setTimeout让ajax请求在多少毫秒之后发出,中间只要点击就重新计时,以最后一次为准。
封装一个 ajax 函数,能通过如下方式调用
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.实现如下加载更多的功能。
代码
新浪云实在搞不定呀