zoukankan      html  css  js  c++  java
  • AJAX笔记整理

    AJAX: Asynchronous JavaScript and XML,异步的Javascirpt和Xml。

    Asynchronous:异步

            与之对应的是 synchronous:同步,我们要知道这里的同步和异步指的是什么?

                    同步交互:指一个时间段内只能有一个进程在执行,当发送一个请求时,必须等待结果的返回,才能发送下一请求。

                    异步交互:指一个时间段内可以有多个进程在执行,即不需要等待返回,随时可以发送下一个请求。

    JavaScript:整个技术的核心。

    Xml:主要保存和传输数据

    AJAX到底是什么?

        AJAX 是一种用于创建快速动态网页的技术,通过在后台与服务器进行少量数据交换。

    AJAX最大的用处是什么?

        AJXA可以使网页异步更新,这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。而传统的网页不使用AJAX,如果需要更新,需要重载整个页面。

        这就是AJAX最大的好处,用户体验好,无刷新。

    XMLHttpRequest对象

          XMLHttpRequest对象是AJAX的基础,所有现代浏览器均支持 XMLHttpRequest 对象。

          XMLHttpRequest 用于在后台与服务器交换数据,使得在不重新加载整个网页的情况下,更新网页。

          1.创建XMLHttpRequest对象的语法

    variable=new XMLHttpRequest();

          为了适应现代的所用浏览器,下面是通用的创建格式  

    var xmlhttp;
    if (window.XMLHttpRequest)
      {// code for IE7+, Firefox, Chrome, Opera, Safari
      xmlhttp=new XMLHttpRequest();
      }
    else
      {// code for IE6, IE5
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
      }

          2.向服务器发送请求

             我们使用的是XMLHttpRequest对象的open()和send()方法   

    xmlhttp.open("GET","test.txt",true);//open(method(请求的类型),url(文件在服务器的位置),async(false:同步 true:异步))
    xmlhttp.send();//将请求发送至服务器

         3.处理返回响应

            需获得来自服务器的响应,我们使用 XMLHttpRequest 对象的 responseText 或 responseXML 属性。

            responseText属性获取的是服务器返回的字符串形式的响应数据。

            responseXML属性获取的是服务器返回的响应是XML。

         4. onreadystatechange 事件

          当请求被发送到服务器时,需要执行一些基于响应的任务。

          每当 readyState 改变时,就会触发 onreadystatechange 事件。

          readyState 属性存有 XMLHttpRequest 的状态信息。

          XMLHttpRequest有下面几个常用的属性:        

    属性描述
    onreadystatechange 存储函数(或函数名),每当 readyState 属性改变时,就会调用该函数。
    readyState

    存有 XMLHttpRequest 的状态。从 0 到 4 发生变化。

    • 0: 请求未初始化
    • 1: 服务器连接已建立
    • 2: 请求已接收
    • 3: 请求处理中
    • 4: 请求已完成,且响应已就绪
    status 200: "OK"
    404: 未找到页面

       

    当 readyState 等于 4 且状态为 200 时,表示响应已就绪,我们就可以执行我们要做的操作:

    xmlhttp.onreadystatechange=function()
      {
      if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
        document.getElementById("test").innerHTML=xmlhttp.responseText;
        }
      }

    总结:  

    ①创建ajax对象 var xhr=new XMLHttpRequest()

    ②建立一个http连接 xhr.open('get',url,true);

    ③发送一个http请求 xhr.send(null);

    ④给ajax状态绑定一个回调函数 xhr.onreadystatechange=function(){};

    ⑤判断ajax的状态是否等于4和xhr.readyState==4 ,就做相应的业务逻辑接收字符串(xhr.responseText)或者XML(xhr.responseXML)。

  • 相关阅读:
    C++ XML文件解析
    coco2d-x create tableView
    cocos2d-x button setTitleLabel
    cocos2d-X create std colorlayer
    Windows cmd "tree"
    C/C++ std::function && std::bind
    C/C++ “std::invoke”: 未找到匹配的重载函数
    31 迭代器 Iterator 是什么?
    30 哪些集合类是线程安全的?
    02 rpx 与 px
  • 原文地址:https://www.cnblogs.com/fankailei/p/10044498.html
Copyright © 2011-2022 走看看