美文网首页
个人总结的一点ajax

个人总结的一点ajax

作者: 自学的还不行么 | 来源:发表于2017-03-03 11:34 被阅读0次

    什么是ajax?

    ajax的全称就是“Asynchronous JavaScript and XML”(异步JavaScript和XML)。是一种创建交互式网页应用的网页开发技术。(就是在不刷新整个网页的情况下更新部分数据)。

    ajax原理

    通过XMLHttpRequest对象向服务器发送异步请求,然后从服务器获取数据,并用JavaScript操作DOM,来更新页面。
    那么好了,XMLHttpRequest又是什么呢,它是ajax的核心机制,最好是从IE5就是开始引用了,是异步请求的技术。
    (说到这里大家是不是想起了IE6,一个神奇的浏览器)。

    XMLHttpRequest 对象
    所有现代浏览器均支持 XMLHttpRequest 对象(IE5 和 IE6 使用 ActiveXObject)。
    XMLHttpRequest 用于在后台与服务器交换数据。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。

    其实简单点说就是JavaScript可以先服务器发送请求和处理响应了,还不阻塞用户的其他操作,并且还能达到无刷新页面更新数据。

    ajax的步骤?

    1、创建XMLHttpRequest对象(创建一个异步调用的对象)。

    2、建立连接

    3、发送请求

    4设置函数监控状态,接收数据

    下面给大家来一段ajax的封装:

      function ajax(json){
          json=json||{};
          json.data=json.data||{};
          json.type=json.type||'get';
          json.timeout=json.timeout||0;
    
      //1.创建对象
      try{
         var oAjax=new XMLHttpRequest();
      }catch(e){
         var oAjax=new ActiveXObject('Miscrosoft.XMLHTTP');
      }
    
      //2.字符串拼起来
      var arr=[];
      for(var name in json.data){
         arr.push(name+'='+json.data[name]);   //?
      }
      var sData=arr.join('&');
    
      if(json.type=='post'){
        //3.连接
        oAjax.open('POST', json.url, true);
    
        oAjax.setRequestHeader('content-type', 'application/x-www-form-urlencoded');
        //4.发送
        oAjax.send(sData);
      }else{
        oAjax.open('GET', json.url+'?'+sData, true);
        oAjax.send();
      }
      //5.接收
      oAjax.onreadystatechange=function (){
        if(oAjax.readyState==4){
          clearTimeout(timer);
          if(oAjax.status>=200&&oAjax.status<300 || oAjax.status==304){
            json.success&&json.success(oAjax.responseText);
          }else{
            json.error&&json.error(oAjax.status);
          }
        }
      };
    
      if(json.timeout){
        var timer=setTimeout(function (){
          oAjax.abort();
        }, json.timeout);
      }
    }
    

    接下来我们说一说readySdate状态码了。
    0、初始化,注:没有调用open方法;
    1、正在加载。注:open方法被调用,send方法还没有;
    2、已加载完毕。注:send被调用,请求已经开始;
    3、交互中。注:服务器正在发送响应;
    4、完毕。注:响应发送完毕

    GET与POST的区别**

    get---32K 不安全 易于分享数据 通过URL传输
    post---1G 相对安全 不易于分享 不通过URL传输

    ajax中用到的HTTP状态码

    1、200 正常 (OK)
    2、304 没有被修改(not modified)
    3、404 没有找到页面(not found)
    4、403 禁止访问(forbidden)
    5、500 内部服务器出错(internal service error)

    还有要注意的就是json解析了

    因为我们都知道我们获取回来的数据都是字符串形式,所以我们要把字符串形式的json转换成真正的json,下面说两种方法:
    1:eval
    2:JSON.parse(str)
    注:需要json的标准格式:
    1.名字必须有引号
    2.只能用双引号,不能用单引号
    {a: 12, b: 5} => {"a": 12, "b": 5}
    {'a': 12, b: 'abc'} => {"a": 12, "b": "abc"}

    其他还有很多要注意的地方,以后想起来在补充吧。
    以上只是个人总结,如有错误,希望指出,一定认真改进。

    相关文章

      网友评论

          本文标题:个人总结的一点ajax

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