美文网首页
ajax实践

ajax实践

作者: S级食材咩咩羊 | 来源:发表于2017-04-04 19:54 被阅读0次

1.ajax 是什么?有什么作用?

  • AJAX = Asynchronous JavaScript and XML:异步的 JavaScript 和 XML
  • 实现网页的异步加载,局部刷新网页。当在向服务器获取新数据时不需要刷新整个网页,提高用户体验。

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

  • 注意事项
    • 约定数据:有哪些需要传输的数据,数据类型是什么
    • 约定接口:确定接口名称及请求和响应的格式,请求的参数名称、响应的数据格式
  • server-mock

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

  • 创建一个变量作为状态锁(标志位),初始为true,发送后置为false,若为false直接return
var AjaxLocking = true;
//点击事件监听函数
xxx.addEventListener('clock',function(){
  if(!AjaxLocking){
    return;
  }
  xhr.onreadystatechange = function(){ //事件
    if(xhr.readyState === 4){
      //...
    AjaxLocking = true;
    }
 } 
  xhr.open()
  xhr.send()
  AjaxLocking = false;
})

4.封装一个 ajax 函数,能通过如下方式调用。后端在本地使用server-mock来 mock 数据

function ajax(opts){
    opts.success = opts.success || function () {};
    opts.error = opts.error || function () {};
    opts.type = opts.type || 'get';
    opts.dataType = opts.dataType || {};
    opts.data = opts.data || {};
    var dataStr = '';
    for (var key in opts.data)
    {
        dataStr += key + '=' + opts.data[key] + '&';
    }
    var xmlhttp = new XMLHttpRequest();
    xmlhttp.onreadystatechange = function () {
        if (xmlhttp.readyState == 4) {
            if (xmlhttp.status == 200 || xmlhttp.status == 304) {
                if (opts.dataType === 'text') {
                    opts.success(xmlhttp.responseText);
                }
                if (opts.dataType === 'json') {
                    var json = JSON.parse(xmlhttp.responseText);
                    opts.success(json);
                }
            } else {
              opts.error();
            }
        }
    };

    dataStr = dataStr.substr(0, dataStr.length - 1);

    if (opts.type.toLowerCase() === 'post')
    {
        xmlhttp.open(opts.type, opts.url, true);
        xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        xmlhttp.send(dataStr);
    }
    if (opts.type.toLowerCase() === 'get')
    {
        xmlhttp.open(opts.type, opts.url + '?' + dataStr, true);
        xmlhttp.send();
    }
}

5.实现加载更多的功能,效果范例107,后端在本地使用server-mock来模拟数据

GitHub

相关文章

  • ajax实践

    1、 ajax 是什么?有什么作用? ajax即asynchronous javascript and xml(异...

  • ajax实践

    1、ajax 是什么?有什么作用? ajax,即Asynchronous JavaScript and XML(异...

  • Ajax实践

    在了解ajax之前,我们先粗略的了解一下http协议 HTTP协议 http事务 一个完整的http请求是怎样的呢...

  • ajax 实践

    题目1: ajax 是什么?有什么作用? ajax是一种技术方案,但并不是一种新技术。它依赖的是现有的CSS/HT...

  • ajax实践

    1.ajax 是什么?有什么作用? Ajax是Asynchronous JavaScript and XML的缩写...

  • Ajax实践

    1.ajax 是什么?有什么作用? AJAX(Asynchronous JavaScript and XML)是一...

  • ajax实践

    题目1: ajax 是什么?有什么作用? AJAX = Asynchronous JavaScript And X...

  • ajax实践

    题目1: ajax 是什么?有什么作用? AJAX的全称是Asynchronous JavaScript and ...

  • ajax实践

    http://www.w3school.com.cn/ajax/index.asp状态码 题目1: ajax 是什...

  • ajax实践

    题目1: ajax 是什么?有什么作用? ajax即“Asynchronous JavaScript and XM...

网友评论

      本文标题:ajax实践

      本文链接:https://www.haomeiwen.com/subject/yewyottx.html