AJAX

作者: 苦瓜_6 | 来源:发表于2018-05-09 11:25 被阅读0次

    主要内容: ajax 是什么、原生ajax 写法和jQuery ajax写法。

    AJAX 是什么

    ajax,即Asynchronous Javascript And XML,是一种技术方案。它依赖的是CSS/HTML/JavaScript ,其中最核心的依赖是浏览器提供的XMLHttpRequest 对象。这个对象使得浏览器可以发出HTTP请求与接收HTTP响应。实现在页面不重新刷新的情况下和服务器通信,交换数据,更新页面。

    AJAX可以是同步请求,也可以是异步请求。但是,大多数情况下,特指异步请求。因为同步的Ajax请求,对浏览器有“堵塞效应”。

    具体来说,ajax包括以下几个步骤:

    • 创建AJAX对象
    • 发出HTTP请求
    • 接收服务器传回的数据
    • 更新网页数据

    XMLHttpRequest对象

    XMLHttpRequest 是什么

    XMLHttpRequest 是一个 API,它为客户端提供了在客户端和服务器之间传输数据的功能。它提供了一个通过 URL 来获取数据的简单方式,并且不会使整个页面刷新,这使得网页只更新一部分页面而不会打扰到用户。
    XMLHttpRequest可以取回所有类型的数据资源,而且除了HTTP,还支持file协议和ftp协议。

    原生ajax 写法

    var xhr = new XMLHttpRequest()
    xhr.open('GET', url, true)
    xhr.onload = function(){
        if((xhr.status >= 200 && xhr.status < 300) || xhr.status == 304){
            //成功了
            console.log(xhr.responseText)
        } else {
            console.log('服务器异常')
        }
    }
    xhr.onerror = function(){
        console.log('服务器异常')
    }
    xhr.send()
    

    jQuery ajax

    $.ajax({
        url: '/xxx',
        method: 'GET',
        data: {
            a: 1,
            b: 2
        }
    }).done(function(result){
        console.log(result);
    }).fail(function(jqXHR, textStatus){
        consloe.log(textStatus);
    });
    

    ajax 中可能会用到的

    $.param()

    创建一个数组或对象序列化的的字符串,适用于一个URL 地址查询字符串或Ajax请求。

    var obj = {index: 1,len: 5};
    $.param(obj)  // "index=1&len=5"
    
    $.serialize()

    将用作提交的表单元素的值编译成字符串。

    参考
    阮一峰:AJAX
    你真的会使用XMLHttpRequest吗?

    相关文章

      网友评论

          本文标题:AJAX

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