原生Ajax技术归纳总结

原生ajax技术归纳总结

1什么是ajax

客户端的页面和服务器之间完成通信的技术,实在同一个页面文档中完 成客户端和服务端的交互。和提交表单,刷新页面,iframe,远程脚本 是不同的。

常用来提交表单,局部刷新,滚动加载等等。

2工作过程

简单来说,就是给服务器一个请求,调用服务器的某些服务,接着返回数 据。

3XMLHttpRequest对象:

管理服务端和客户端异步通信的对象,是一个全局变量。

使用中第一步需要获得XMLHttpRequest对象。

如:var ajax = new XMLHttpRequest();

1.XMLHttpRequest对象中的方法:

1.open(method,url,[async,username,password]);
        method:get/post;
        url:指定服务端的链接;
        async:false/true(默认);true表示异步,false表示同步
        username,password可选参数,指定服务器的用户名和密码;
2.setRequestHeader(label,value);
        给该方法的请求头添加标记/值对;
3.send('content');
        核心方法,发送请求,附带相应的数据
4.getAllResponseHeaders
        getAllResponseHeaders();
        字符串的形式,返回所有http应答的头,内容,服务,
        日期等相关的信息
5.getResponseHeader
        getResponseHeaders(lable);
        字符串的形式,获取指定http应答头的信息
6.abort
        abort(),取消当前的请求

注意

1.XMLHttpRequest.open()中的method,常用
    get,post;
    但是还包含其他的方法
    get:服务端请求数据;
    post:向服务端发送数据;
    delete:删除指定资源的数据;
    put:数据保存到指定的资源上;
    head,和get相似,但是服务器端应答的只是头而已;

    其中最主要使用的还是get/post

2.XMLHttpRequest对象中的属性:

1.onreadystatechange
    保存请求的ready状态改变的时候,调用的函数
2.readyState
    五个值
    0 没有初始化
    1 open阶段
    2 请求已经发送
    3 正在接受应答
    4 应答已经收到

    注意:大部分情况下,我们只需要关心他的值为4的情况
3.responseText
    文本格式的应答信息
4.responseXML
    xml格式的应答信息,看做有效的xml处理
5.status
    返回http请求的状态
    404,500,等等
    最期待的是200(因为200表示一切正常)
6.statusText
    以文字的形式请求状态

处理web请求

发送Ajax请求之后,下一步就要开始处理相应的请求

1.获取服务器返回的数据
    XMLHttpRequest.onreadystatechange = function(){}
    (后面也可以是函数名,函数另外设定,一般使用回调函数)

    注意:其实按照前文所说,是状态改变的时候,后面跟着需要调用的函数
        也就是创建对象,发送数据完结之后,需要执行的回调函数而已

        它最重要的一点就是函数的调用时机,状态改变的时候调用
2.回调函数的设定
    XMLHttpRequest.onreadystatechange = function(){ 
        //按照前文,其实也就是判断应答是否已经收到,传输过程是否是一切正常
        if(XMLHttpRequest.readyState == 4 && XMLHttpRequest.status == 200)
        //如果应答收到,一切正常,那么执行页面需要执行的程序即可

        //如果需要获取服务器返回的数据
        var data = XMLHttpRequest.responseText;
    }

实例:(步骤实例,不是完整的程序实例)

//-------------------------------------------------
<script type="text/javaScript">
    //获取XMLHttpRequest对象
    var ajaxObj = new XMLHttpRequest();
    //打开发送信息句柄
    ajaxObj.open('get/post','url',true);
    //发送请求
    ajaxObj.send(data)//get方法也可以url后缀
    ajaxObj.onreadystatechange = function(){ 
        if(ajaxObj.readyState == 4 && ajaxObj.status == 200){ 
            //获取到服务器返回的数据
            var res = ajaxObj.responseText;
            //完毕之后页面需要处理的程序
            {XXXXXXXXXXXXXXXXXXXXX}
        }
    }

</script>
//------------------end-------------------------

注意:这只是对常用技术简单的总结归纳,方便自己以及各位查询。错误之处,望批评指正,大家一起成长。

jquery的ajax技术将会总结在大类jquery中。后续更新
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值