题目1: ajax 是什么?有什么作用?
AJAX是对Asynchronous Javascript +XML的简写,它的诞生使得向服务器请求额外的数据而不用刷新页面
优点
- 更新数据而不需要刷新页面:它能在不刷新整个页面的前提下与服务器通信维护数据,由于ajax是按照需求请求数据,避免发送那些没有改变的数据
- 异步通信:它与服务器使用异步的方式通信,不会打断用户的操作(卡死页面)
- 数据与呈现分离:利于分工,降低前后耦合
缺点 - 浏览器历史记录的遗失:在使用AJAX对页面进行改变后,由于并没有刷新页面,没有改变页面的访问历史,当用户想要回到上个状态时,无法使用浏览器提供的后退
- AJAX的安全问题:AJAX的出现就像建立起了一条通服务器的另一条通道,容易遭到一些攻击
题目2: 前后端开发联调需要注意哪些事情?后端接口完成前如何 mock 数据?
- 约定数据:有哪些需要传输的数据,数据类型是什么
- 约定接口:确定接口名称及请求和响应的格式,请求的参数名称和格式(get/post),响应的数据格式(数组/对象)
- 根据这些约定整理成接口文档
mock数据 - 搭建web服务器
- 根据接口文档仿造假数据
- 关联前后端文件,开启web服务器
- 验证前端页面功能及显示是否正确
题目3:点击按钮,使用 ajax 获取数据,如何在数据到来之前防止重复点击?
var locked = false //添加一个状态锁
ele.addEventListener('click',function(){
if(locked){
return //若正在请求数据,则这次点击什么都不做
}else{
locked = true
ajax()
}
})
function ajax(){
...
locked = false //成功接收到数据后解锁
}