Ajax

题目1: ajax 是什么?有什么作用?

  • ajax 的全称是Asynchronous JavaScript and XML,直译:异步 JavaScript 和 XML。
  • ajax是使用XMLHttpRequest对象与服务器端通信的脚本语言。
  • 可以无需刷新页面而与服务器端进行通信,可以发送及接收各种格式的信息,包括JSON、XML、HTML和文本文件。

题目2: 前后端开发联调需要注意哪些事情?后端接口完成前如何 mock 数据?

  • 前后端开发联调需要注意哪些事情:
  1. 统一接口名称,统一命名,定制规范。
  2. 统一数据类型,统一数据大小等限制的确定。
  3. 统一接口的相关参数: url、端口、方法( get/post)、请求数据的类型。
  4. 按照上述确认后的版本严格执行。
  • 后端接口完成前如何 mock 数据:
  1. 在本地搭建服务器后台,如使用nodejs等软件。
  2. 编写router.js文件模拟后端返回数据。

题目3:点击按钮,使用 ajax 获取数据,如何在数据到来之前防止重复点击?

防止数据到来之前防止重复点击,可以在XMLHttpRequest对象与后台服务器通信中进行条件判断,首先阻止默认事件,再设置一个标记变量值为true,判断节点设置在执行发送函数时,将标记变量值变为false,并在css或js中阻止执行发送函数(元素)生效,如果接收到后台服务器返回的数据则将标记变量的值还原为true,并使发送函数(元素)可被正常执行。
例子demo

var btn=document.querySelector('#btn')
var isLoad = true
btn.addEventListener("click",function(e){
  e.preventDefault()
  if(!isLoad){
    return;//btn.classList.add(‘disabled’)
  }
  var xhr=new XMLHttpRequest()
  xhr.onreadystatechange=function(){
    if(readystate===4){
      if(xhr.status === 200||xhr.status === 304){
        /*var results = JSON.parse(xhr.responseText);
        for (var i = 0; i < results.length; i++) {
          var node = document.createElement('li')
          node.innerText = results[i]
          ct.appendChild(node)*/
        isLoad = true 
      }
    }
      xhr.open('get',"/url",true)
    xhr.send()
    isLoad = false
    //btn.classList.remove(‘disabled’)
  }
})

题目4:实现加载更多的功能,效果范例296,后端在本地使用server-mock来模拟数据

demo

//router.js
app.get('/loadMore', function (req, res) {
  var idx = req.query.index
  var len =req.query.length
  var data = []
  for(var i = 0;i

你可能感兴趣的:(Ajax)