ajax详解(逆战班)

ajax详解

什么是ajax?

  • AJAX 是一种用于创建快速动态网页的技术
  • AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。(重点)
  • Ajax 不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的Web应用程序的技术

ajax的优点与缺点

ajax的优点

  • 能在不更新整个页面的前提下实现局部更新
  • 提升 Web 程序的性能(按需传递数据)
  • 减轻服务器和带宽的负担

ajax的缺点

  • AJAX没有Back(后退)和History(前进)功能,即对浏览器机制的破坏
  • 对搜索引擎的支持比较弱(AJAX会增大网络数据的流量,从而降低整个系统的性能)

ajax常用状态码

状态码说明
1**请求收到,继续处理
2**操作成功收到,分析、接受
3**完成此请求必须进一步处理
4**请求包含一个错误语法或不能完成
5**服务器执行一个完全有效请求失败
101客户要求服务器根据请求转换HTTP协议版本
200交易成功
304客户端已经执行了GET,但文件未变化
306前一版本HTTP中使用的代码,现行版本中不再使用
400错误请求,如语法错误
403请求不允许
404没有发现文件、查询或URl
405用户在Request-Line字段定义的方法不允许
500服务器产生内部错误
505服务器不支持或拒绝支请求头中指定的HTTP版本

封装ajax请求

get请求

const util = {

    /**
   //    * ajax get请求
   //    * @param {string} url 请求的地址
   //    * @param {object} query 请求所要携带的参数
   //    * @param {function} fn 请求数据返回之后的回调
   //    * @param {boolean}  [isJson] 请求的数据是否为json,默认为true
   //    */
    get(url, query, fn, isJson = true) {
        //判断是否传入参数
        if (query) {
            url += '?'
            for (var key in query) {
                url += `${key}=${query[key]}&`
            }
            //多出一个&,所以截取
            url = url.slice(0, -1)
        }

        //1、创建一个核心对象
        let xhr = new XMLHttpRequest();
        //2、打开
        xhr.open('get', url)
        //3、send 发送请求
        xhr.send();
        //4、监听状态xhr.onreadystatechange
        xhr.onreadystatechange = function () {
            //判断是否响应
            if (xhr.readyState === 4) {
                //代表数据是否正确响应
                if (xhr.status === 200) {
                    let respText = isJson ? JSON.parse(xhr.responseText) : xhr.responseText;
                    // 逻辑短路,fn有效才调用
                    fn && fn(respText)
                }
            }
        }
    }
}
 let btu = document.getElementById('btu')
    btu.onclick = function () {
        util.get('http://www.xiongmaoyouxuan.com/api/tab/1?start=0', null, success => {
            console.log(success)
        })

    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值