ajax

Ajax:asynchronous javascript and xml,是可以与服务器进行(异步/同步)交互的技术之一
最大特点:页面不刷新
(一)ajax是xhtml css javascript xml XMLHttpRequest对象(ajax对象)其中XMLHttpRequest是ajax的官方名称
(二)使用ajax:
      1.创建ajax对象
         1.1 主流(火狐 谷歌)等浏览器,包括IE7以上版本的浏览器
              方式:var xhr=new XMLHttpRequest;
         1.2 IE(6/7/8)版本
              方式:var xhr=new ActiveXObject("Msxml2.XMLHTTP.6.0");
         1.3 区别浏览器

    if(typeof XMLHttpRequest != 'undefined')  
    var xhr = new XMLHttpRequest;
    else 
    var xhr = new ActiveXObject('Msxml2.XMLHTTP6.0');

      2.发送对服务器的请求

    //创建一个新的http请求
    xhr.open(请求方式get/post,请求地址(url),异步/同步(true/false));
    //发送请求
    xhr.send(post请求输入要传递的数据/get请求设置null);

      3.接收服务器返回的信息
         3.1 浏览器可以接受的信息ajax都可以接受
         3.2 ajax(XMLHttpRequest)对象的成员:
              属性:
                      responseText 以字符串的形式接收服务器端返回的信息
                      readyState 表示ajax的状态值
                      onreadystatechange 事件,该事件可以感知ajax状态的变化
              方法:
                      abort 取消当前请求
                      getAllResponseHeaders 获取响应的所有Http头
                      getResponseHeader 从响应信息中获取指定的Http头
                      open 创建一个新的http请求,并指定请求的方法和url
                      send 发送请求到http服务器并接收回应
                      setRequestHeader 单独指定请求的某个http头
         3.3 ajax的五种状态(readyState)
              0: 创建ajax对象完毕,但未调用open方法
              1: 请求已经创建,但未调用send方法
              2: 请求已经发送完成
              3: 服务器的数据返回了一部分
              4: 服务器的数据返回完毕,并且连接已关闭
      4.get/post方式的ajax请求:
         4.1 get和post的主要区别:
              一.get方式给服务器传递的数据量有大小限制,在2k左右,post方式传送的数据量没有大小限制,但是在php.ini中默认上限是8M
              二.post传送数据更安全
            三.传送数据的方式不一样,get方式在url后以请求字符串形式传递参数,post方式是把数据以xml形式传递给服务器
         4.2 ajax的get请求:
              一.在url地址后以请求字符串形式处理数据,比如:

        xhr.open('get','test.php?action=login');

              二. 对 中文 = &等特殊字符进行处理:
                      在php中可以用函数urlencode()/urldecode()对特殊符号进行编码和反编码处理
                      在javascript中使用encodeURIComponent()对特殊符号进行编码
         4.3 ajax的post请求:
              一.给服务器传递数据需要调用send(请求字符串数据)
              二.post模仿form表单把数据传递给服务器(设置表头)

        xhr.setRequestHeader('content-type','application/x-www-form-urlencoded');//写在open之后,send之前

      5.同步/异步
         异步:同一时间点允许执行多个进程 true(open方法中默认是true)
         同步:同一时间点只允许执行一个进程 false
         举例说明:当html页面中有图片进行加载时,如果ajax是异步请求,那么浏览器可以一边执行ajax一边加载图片;如果是同步请求,浏览器就必须先执行ajax之后再接着加载图片

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值