ajax

作者: 嘿菠萝 | 来源:发表于2016-08-16 21:32 被阅读198次

    问答

    • 1.ajax 是什么?有什么作用?
      AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),其实是我们去操纵XMLHttpRequest这么一个对象,向后台要数据,这个对象要完数据之后,页面不刷新,我们直接拿到这个数据,然后再进行一些展示或处理
    • 2.前后端开发联调需要注意哪些事情?后端接口完成前如何 mock 数据?(npm install -g server-mock)
    • 注意:
      1.确认接口文档的归属,由谁来撰写。
      2.确认接口的参数和返回值,还有接口名称。
      3.确认数据传输方式,是否需要中间站
      4.确认数据传输格式,JSON或XML等
      5.确认接口数据管理权6.接口信息变动告知方式
    • 如何 mock 数据:
      1.自己编写测试数据,但是要求较高操作麻烦,并且可能数据类型不够全面。
      2.使用mock.js,搭建本地服务器,使用后端语言编写简单的接口模拟数据来测试。
      3.借助server-mock,修改文件之后需要重启server-mock.
    • 3.点击按钮,使用 ajax 获取数据,如何在数据到来之前防止重复点击?
      在事件开始前设置一个状态锁,在事件开始前挂锁,事件结束后解锁,如果是重复点击则直接return掉,起到在数据到来之前防止重复点击的作用。


    代码题

    1.封装一个 ajax 函数,能通过如下方式调用

    <pre>
    function ajax(opts){
    var xmlhttp=new XMLHttpRequest();

      xmlhttp.onreadystatechange=function(){
        if(xmlhttp.readyState==4&&xmlhttp.status==200){  
        var json=JSON.parse(xmlhttp.responseText);
        opts.success(json);
        }
        if(xmlhttp.readyState==4&&xmlhttp.status==404){
         opts.error();
        }
      }
     var dataStr='';
     for(var key in opts.data){
      dataStr+=key+'='+opts.data[key]+'&';
     }
    
      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();
      }
    

    }

    document.querySelector('#btn').addEventListener('click', function(){
    ajax({
        url: 'getData.php',   //接口地址
        type: 'get',               // 类型, post 或者 get,
        data: {
            username: 'xiaoming',
            password: 'abcd1234'
        },
        success: function(ret){
            console.log(ret);       // {status: 0}
        },
        error: function(){
           console.log('出错了')
        }
    })
    

    });

    </pre>

    版权归吴秀芳和饥人谷所有,若有转载,请注明来源

    相关文章

      网友评论

        本文标题:ajax

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