ajax

来源:互联网 发布:贴吧发帖软件 编辑:程序博客网 时间:2024/06/05 01:13
  1. Ajax简介
    Ajax = Asynchromons JavaScript and XML(即异步的javaScript 和XML),可以通过后台服务器数据交换是页面更新。

  2. 用法:
    主要有四个步骤:
    1:创建XMLHttpRequest对象;
    语法:

         var xml= New XMLHttpRequest();    //由于IE5和IE6版本没有这个对象所以需要考虑兼容问题         var xml = New ActiveXobject('micsoft.XMLHTTP')    //这里我们可以用if语句做一下判断。        if(window.XMLHttpReqest){            var xml= New XMLHttpRequest();        }else{            var xml = New ActiveXobject('micsoft.XMLHTTP');        }

2:向服务器发送请求Open一个方法;
语法:

    xml.open();    //这里open(methed,url,async)分别是规则请求的数据类型,url和是否异步处理请求;

3:send(sting)发送数据:
send()方法如果使用get方式open则send() 里面可以是空,但是如果是post方法open则send()方法里面必须有数据

    xml.send(); 


4:接受返回的数据;
语法:

     xml.onreadystatechange = function (){        if(xml.readyState == 4){          if (xml.status==200) {           // var body=JSON.parse(xml.responseText);//转化为对象类型             success&&success(JSON.parse(xml.responseText));          }        }      }

注意:如果需要获得服务器响应,请用XMLHttpRequest对象的responseText和responseXML属性,
1:responseText属性返回字符串形式的响应,如json数据;
2:responseXML属性,如果来自服务器的响应是XML而需要作为XML对象进行解析时使用responseXML;
onreadystatechange事件:当请求被发送服务器时我们需要执行
基于响应的任务,每当readystate改变时就会触发onreadystatechange事件;
XMLHttpRequest对象的三个重要的属性:

  1. onreadystatechange:存储函数或者是函数名每当readystate属性发生改变时就会调用函数;
  2. readystate:存有XMLHttpRequest对象的状态从0到4;
    0: 请求初始化;
    1:服务器链接建立;
    2 : 请求接收;
    3:请求正在处理
    4 :请求完成且响应已经就位;
  3. status:200:“OK”404:没有找到页面

缓存问题
在open()方法中的url后面加一个动态字符串

    “url?”+Math.random();    //或者    “url?”+New Date().getTime();

ajax的分装

    function ajax(option){      var type=option.type;      var url=option.url;      var async=option.async;      var success=option.success;      var xml = null;      if(window.XMLHttpRequest){         xml = new XMLHttpRequest();      }else {         xml = new ActiveXObject("Microsoft.XMLHttp");      }      url=url+"?"+Math.random();//解决缓存问题      xml.open(type,url,async);      xml.send();      xml.onreadystatechange = function (){        if(xml.readyState == 4){          if (xml.status==200) {           // var body=JSON.parse(xml.responseText);//转化为对象类型             success&&success(JSON.parse(xml.responseText));          }        }      }    }

jquery.get分装的ajax
首先需要进入jquery框架;

$.get(    "./Ajax.aspx",    {       Action:"get",       Name:"lulu"    },     function (data, textStatus){    //alert(data);    //返回的 data 可以是 xmlDoc, jsonObj, html, text, 等等.    //alert(this);    //this; // 在这里this指向的是Ajax请求的选项配置信息    //alert(textStatus);    //请求状态:success,error等等。 当然这里捕捉不到error,因为error的时候根本不会运行该回调函数});

vue 的ajax分装
首先需要引入Vue框架和vue-resource;

    this.$http.get("./api/xxxx").then(response=>{       this.data=response.body       //data是回调函数中的参数,也是请求数据的接受对象;    })
原创粉丝点击