GVKun编程网logo

AJAX入门(ajax入门看这一篇就够了)

10

这篇文章主要围绕AJAX入门和ajax入门看这一篇就够了展开,旨在为您提供一份详细的参考资料。我们将全面介绍AJAX入门的优缺点,解答ajax入门看这一篇就够了的相关问题,同时也会为您带来AJAX入门

这篇文章主要围绕AJAX入门ajax入门看这一篇就够了展开,旨在为您提供一份详细的参考资料。我们将全面介绍AJAX入门的优缺点,解答ajax入门看这一篇就够了的相关问题,同时也会为您带来AJAX入门 之 使用 AJAX 修改页面文本内容(四)、AJAX入门---AJAX操作HTML、AJAX入门2、AJAX入门3-AJAX开发步骤的实用方法。

本文目录一览:

AJAX入门(ajax入门看这一篇就够了)

AJAX入门(ajax入门看这一篇就够了)

Ajax是浏览器端的异步刷新。只是局部更新。使得网络慢的时候用户不会等太久。

步骤(例子):

HTML代码
  • <title>首页</title>
  • </head>
  • <scripttype="text/javascript">
  • functiondizhi(){
  • varxmlHttp=newActiveXObject("Msxml2.XMLHTTP");
  • xmlHttp.open("GET","ajax1.jsp","true");
  • xmlHttp.onreadystatechange=function(){
  • if(xmlHttp.readyState==4){
  • div1.innerHTML=xmlHttp.responseText;
  • }
  • }
  • alert(xmlHttp.readyState);
  • xmlHttp.send();
  • }
  • </script>
  • <body>
  • 欢迎来到重庆文理学院
  • <inputtype="button"value="学校地址"onclick="dizhi()">
  • <divid="div1"></div>
  • 步骤:

    1:var xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");

    //IE浏览器实例化 "Msxml2.XMLHTTP"对象

    2:xmlHttp.open("GET","true");

    //异步提交的目标和方法

    3:xmlHttp.onreadystatechange() = function(){

    //xmlHttp状态改变时,进行处理代码

    4: if(xmlHttp.readyState==4){

    //xmlHttp.readyState 有0~4 5种状态

    0:未初始化状态,未调用open()

    1:已经初始化状态,已经调用open()

    2:发送数据状态,调用send()以后

    3:数据传送中状态,已经接受部分,但是没有接受完成

    4:完成状态,数据接受完成

    div1.innerHTML = xmlHttp.responseText;

    //xmlHttp.responseText 是从目标提取出来的文本内容

    }

    5:xmlHttp.send();

    }

    AJAX入门 之 使用 AJAX 修改页面文本内容(四)

    AJAX入门 之 使用 AJAX 修改页面文本内容(四)

    <html>
    <head>
    <script>
    function loadXMLDoc()
    {
    var xmlhttp;
    if (window.XMLHttpRequest)
      {// code for IE7+,Firefox,Chrome,Opera,Safari
      // XMLHttpRequest对象:用来实现异步通讯的组件对象,是Ajax的核心技术
      xmlhttp=new XMLHttpRequest();
      }
    else
      {// code for IE6,IE5
      // 初始化 XMLHttpRequest 对象
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
    xmlhttp.onreadystatechange=function()
      {
    	// HTTP 请求的状态,只能有5个可选的值
    	// 0 = uninitialized,1 = loading,2 = loaded,3 = interactive,and 4 = complete.
    	// 最重要的是readyState==4, 这时请求响应才真正完成,可以进行数据的操作。
    	// 这个在HTTP响应中的响应码,200代表响应成功。
      if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
    	// 该属性代表的是从Server端返回的一个string格式的响应。
        document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
        }
      }
    // 该方法会建立对服务器的调用,但并不会真正发送,只是准备.
    // 前两个参数是必须的,分别代表HTTP请求方法和所调用资源的URL
    // 第三个是一个 boolean值,默认true,代表请求异步.
    // 如果为false,前端浏览器对于用户响应的处理就会等待,直到从服务器返回响应为止。
    // 异步调用是AJAX的优势之一,本次传到前台的文件为 ajax_info.txt 。
    xmlhttp.open("GET","/try/ajax/ajax_info.txt",true);
    // send 这个方法才是真正发送请求,如果上面的第三个参数设置为ture, 那么调用完后会立即返回,
    // 如果为 false 就会直到接收到响应才返回,但这并不会影响回调函数的多次执行,
    // 因为浏览器后台也是多线程的,同步只会阻止前端页面的响应。
    xmlhttp.send();
    }
    </script>
    </head>
    <body>
    
    <div id="myDiv"><h2>使用 AJAX 修改该文本内容</h2></div>
    <button type="button" onclick="loadXMLDoc()">修改内容</button>
    
    </body>
    </html>
    

    AJAX入门---AJAX操作HTML

    AJAX入门---AJAX操作HTML

    AJAX入门---DOM操作HTML

    一边学习AJAX一边坐着总结加深印象,上次写的是如何简单的使用XMLHttpRequest对象,今天写的是DOM(文档对象模型(Document Object Model))操作HTML,希望我的博客对大家的学习能够起到帮助作用。

    一.什么是DOM

    文件对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展标志语言的标准编程接口。DOM可以以一种独立于平台和语言的方式访问和修改一个文档的内容和结构。换句话说,这是表示和处理一个HTML或XML文档的常用方法。

    二.简单的操作HTML

    今天的例子实现前我们先需要了解DOM的常用节点和常用API,例子中通过动态的向HTML中添加元素节点达到学习的目的。

    最终效果

    添加节点实现

    [plain] view plain copy print ?
    1. //添加节点
    2. varindex=0;
    3. functionappendnode(){
    4. //找到body对应节点
    5. varhtmlNode=document.documentElement;
    6. varbodyNode=htmlNode.lastChild;
    7. //新建节点
    8. vardivNode=document.createElement("div");
    9. vartextNode=document.createTextNode("我是一个新加入的节点"+index++);
    10. //建立节点之间的关系
    11. divNode.appendChild(textNode);
    12. bodyNode.appendChild(divNode);
    13. }

    插入节点实现

    [plain] view plain copy print ?
    1. //插入节点
    2. functioninsertnode(){
    3. varremovenode=document.getElementById("remove");
    4. varfirstdivnode=removenode.nextSibling;
    5. while(firstdivnode){
    6. if(firstdivnode&&firstdivnode.nodeName=="DIV"){
    7. varnewnode=document.createElement("div");
    8. vartextnode=document.createTextNode("我是一个新加入的节点"+index++);
    9. newnode.appendChild(textnode);
    10. document.documentElement.childNodes[2].insertBefore(newnode,firstdivnode);
    11. break;
    12. }
    13. firstdivnode=firstdivnode.nextSibling;
    14. }
    15. }

    移除节点实现

    [plain] view plain copy print ?
    1. functionremovenode(){
    2. //1.找到body
    3. //2.找到需要被移除的那个div
    4. //3.调用remove方法移除节点
    5. varbodynode=document.getElementById("remove").parentNode;
    6. varremovenode=document.getElementById("remove");
    7. varfirstdivnode=removenode.nextSibling;
    8. while(firstdivnode){
    9. if(firstdivnode&&firstdivnode.nodeName=="DIV"){
    10. bodynode.removeChild(firstdivnode);
    11. break;
    12. }
    13. firstdivnode=firstdivnode.nextSibling;
    14. }
    15. }

    总结

    总记得以前有位老师总是在班里提醒“好记性不如烂笔头”,诚然编程有何尝不是这样,自己实现一遍抵得上自己看千万遍源码。需要完整的demo您可以通过下载免费源码获取(http://download.csdn.net/detail/senior_lee/7714311)

    AJAX入门2

    AJAX入门2

    AJAX包含的技术  

    AJAX:(Asynchronous JavaScript and XML)并不是一项新技术,其实是多种技术的综合,包括Javascript、HTML和CSS、DOM、XML和XMLHttpRequest. 

    •服务器端语言:服务器需要具备向浏览器发送特定信息的能力。Ajax与服务器端语言无关。
    XML (eXtensible MarkuP Language,可扩展标记语言) 是一种描述数据的格式。AJAX 程序需要某种格式化的格式来在服务器和客户端之间传递信息,XML 是其中的一种选择
    HTML(Hypertext MarkuP Language,使用超文本标记语言)和 CSS(Cascading Style Sheet,级联样式单)标准化呈现;
    DOM(Document Object Model,文档对象模型)实现动态显示和交互;
    •使用XMLHttpRequest对象进行异步数据读取
    •使用JavaScript绑定和处理所有数据

    AJAX的缺陷

    AJAX不是完美的技术。也存在缺陷:

    1 AJAX大量使用了JavaScript和AJAX引擎,而这个取决于浏览器的支持。IE5.0及以上、Mozilla1.0、netscape7及以上版本才支持,Mozilla虽然也支持AJAX,但是提供XMLHttpRequest的方式不一样。

      所以,使用AJAX的程序必须测试针对各个浏览器的兼容性。

    2 AJAX更新页面内容的时候并没有刷新整个页面,因此,网页的后退功能是失效的;有的用户还经常搞不清楚现在的数据是旧的还是已经更新过的。这个就需要在明显位置提醒用户“数据已更新”。

    3 对流媒体的支持没有FLASH好。

    4 一些手持设备(如手机、PDA等)现在还不能很好的支持Ajax。

    XMLHttpRequest对象

      XMLHttpRequest是XMLHTTP组件的对象,通过这个对象,AJAX可以像桌面应用程序一样只同服务器进行数据层面的交换,而不用每次都刷新界面,也不用每次将数据处理的工作都交给服务器来做;这样既减轻了服务器负担又加快了响应速度、缩短了用户等待的时间。

      XMLHttpRequest最早是在IE5中以ActiveX组件的形式实现的。非W3C标准。

      创建XMLHttpRequest对象(由于非标准所以实现方法不统一)

    •Internet Explorer把XMLHttpRequest实现为一个ActiveX对象
    •其他浏览器(Firefox、Safari、Opera…)把它实现为一个本地的JavaScript对象。
    •XMLHttpRequest在不同浏览器上的实现是兼容的,所以可以用同样的方式访问XMLHttpRequest实例的属性和方法,而不论这个实例创建的方法是什么。

    方式一:try{}catch(){}

     1 function   createXHR(){
     2    var xhr;
     3    try{    //Firefox,Opera,Safari
     4            xhr=new XMLHttpRequest();
     5     }catch (e){
     6                  try{//IE
     7                       xhr=new ActiveXObject("Microsoft.XMLHTTP");
     8                  }catch (e){}  
     9                  }
    10     }
    11    return xhr;
    12  }

    方式二:if(){}else{}

     1 function createXMR(){
     2             var xhr = null;
     3 //            1、如果是IE
     4             if(window.ActiveXObject){
     5                 xhr = new ActiveXObject("microsoft.xmlhttp");//固定写法
     6             }else{//如果非IE
     7                 xhr = new XMLHttpRequest();
     8             }
     9             return xhr;
    10         }

    发送请求--方法和属性介绍

    利用XMLHttpRequest 实例与服务器进行通信包含以下3个关键部分:
    •onreadystatechange 事件处理函数
    •open 方法
    •send 方法

        1)onreadystatechange

    •该事件处理函数由服务器触发,而不是用户
    •在 Ajax 执行过程中,服务器会通知客户端当前的通信状态。这依靠更新 XMLHttpRequest 对象的 readyState 来实现。改变 readyState 属性是服务器对客户端连接操作的一种方式。
    •每次 readyState 属性的改变都会触发 readystatechange事件

    2)open(method,url,asynch)-XMLHttpRequest 对象的 open 方法允许程序员用一个Ajax调用向服务器发送请求。

        •method:请求类型,类似 “GET”或”POST”的字符串。若只想从服务器检索一个文件,而不需要发送任何数据,使用GET(可以在GET请求里通过附加在URL上的查询字符串来发送数据,不过数据大小限制为2000个字符)。若需要向服务器发送数据,用POST。

        •在某些情况下,有些浏览器会把多个XMLHttpRequest请求的结果缓存在同一个URL。如果对每个请求的响应不同,这就会带来不好的结果。把当前时间戳追加到URL的最后,就能确保URL的惟一性,从而避免浏览器缓存结果。
    varurl="GetAndPostExampletimeStamp="+newDate().getTime(); 

        •url:路径字符串,指向你所请求的服务器上的那个文件。可以是绝对路径或相对路径。

        •asynch:表示请求是否要异步传输,默认值为true(异步)。指定true,在读取后面的脚本之前,不需要等待服务器的相应。指定false,当脚本处理过程经过这点时,会停下来,一直等到Ajax请求执行完毕再继续执行。

        3)send(data)

    •open 方法定义了 Ajax 请求的一些细节。send 方法可为已经待命的请求发送指令
    •data:将要传递给服务器的字符串。

        •若选用的是 GET 请求,则不会发送任何数据, 给 send 方法传递 null 即可:request.send(null);

        •当向send()方法提供参数时,要确保open()中指定的方法是POST,如果没有数据作为请求体的一部分发送,则使用null.

        •完整的 Ajax 的 GET 请求示例:

        

        4)setRequestHeader(header,value)
        •当浏览器向服务器请求页面时,它会伴随这个请求发送一组首部信息。这些首部信息是一系列描述请求的元数据(Metadata)。 首部信息用来声明一个请求是 GET 还是 POST
        •Ajax 请求中,发送首部信息的工作可以由 setRequestHeader完成
        •参数header: 首部的名字; 参数value:首部的值。
         •如果用 POST 请求向服务器发送数据,需要将 “Content-type” 的首部设置为 “application/x-www-form-urlencoded”.它会告知服务器正在发送数据,并且数据已经符合URL编码了。
        •该方法必须在open()之后才能调用
        •完整的 Ajax 的 POST 请求示例:

          

      接收--方法和属性介绍

      用 XMLHttpRequest 的方法可向服务器发送请求。在 Ajax 处理过程中,XMLHttpRequest 的如下属性可被服务器更改:

    •readyState
    •status
    •responseText
    •responseXML

      1)readyState

        readyState 属性表示Ajax请求的当前状态。它的值用数字代表

    •0 代表未初始化。 还没有调用 open 方法
    •1 代表正在加载。 open 方法已被调用,但 send 方法还没有被调用
    •2 代表已加载完毕。send 已被调用。请求已经开始
    •3 代表交互中。服务器正在发送响应
    4 代表完成。响应发送完毕

        每次 readyState值的改变,都会触发 readystatechange事件

        •如果把 onreadystatechange 事件处理函数赋给一个函数,那么每次 readyState 值的改变都会引发该函数的执行。

        •readyState 值的变化会因浏览器的不同而有所差异。但是,当请求结束的时候,每个浏览器都会把 readyState 的值统一设为 4

      

       2)status

        •服务器发送的每一个响应也都带有首部信息。三位数的状态码是服务器发送的响应中最重要的首部信息,并且属于超文本传输协议中的一部分。

    •常用状态码及其含义:
    •404 没找到页面(not found)
    •403 禁止访问(forbidden)
    •500 内部服务器出错(internal service error)
    •200 一切正常(ok)
    304 没有被修改(not modified)( 服务器返回304状态,表示源文件没有被修改 )
    •在 XMLHttpRequest 对象中,服务器发送的状态码都保存在 status 属性里。通过把这个值和 200 或 304 比较,可以确保服务器是否已发送了一个成功的响应

       3)responseText  

    •XMLHttpRequest 的 responseText 属性包含了从服务器发送的数据。它是一个HTML,XML或普通文本,这取决于服务器发送的内容。
    •当 readyState 属性值变成 4 时,responseText 属性才可用,表明 Ajax 请求已经结束。

        

       4)responseXML

    •如果服务器返回的是 XML, 那么数据将储存在 responseXML 属性中。
    •只用服务器发送了带有正确首部信息的数据时, responseXML 属性才是可用的。 MIME 类型必须为 text/xml

         

    AJAX开发步骤及详解     

    1)创建ajax_1.html或ajax_1.jsp 2)添加事件 3)在事件响应后创建Ajax引擎对象 4)异步发送请求 5)将响应结果放入Ajax引擎对象中 6)从Ajax引擎对象中取得响应结果 7)使用DOM和JS将响应结果动态添加到Html或Jsp面页中 8)对于POST请求,一定要设置请求头,代码如下:   xhr.setRequestHeader("content-type","application/x-www-form-urlencoded");在open()之后,在send()之前对于GET请求,无需设置请求头

    AJAX入门3-AJAX开发步骤

    AJAX入门3-AJAX开发步骤

    AJAX开发框架

    AJAX实质上也是遵循B/S模式,所以这个框架基本的流程是:

    对象 初始化
    发送请求
    服务器接收
    服务器返回
    客户端接收
    修改客户端页面内容。

    只不过这个过程是异步的。

    A、初始化XMLHttpRequest对象

     1 function   createXHR(){
     2    var xhr;
     3    try{    //Firefox,Opera,Safari,。。。
     4            xhr=new XMLHttpRequest();
     5     }catch (e){
     6                  try{//IE
     7                       xhr=new ActiveXObject("Microsoft.XMLHTTP");
     8                  }catch (e){}  
     9                  }
    10     }
    11    return xhr;
    12  }

    B、指定响应处理函数

    指定当服务器返回信息时客户端的处理方式。只要将相应的处理函数名称赋给XMLHttpRequest对象的onreadystatechange属性就可以了.比如:

    XMLHttpReq.onreadystatechange = processResponse;

    注意:这个函数名称不加括号,不指定参数。也可以用Javascript函数直接量方式定义响应函数。比如:

    XMLHttpReq.onreadystatechange = function() { };

    // 处理返回信息的函数

    function processResponse() {

      }

    C、发出HTTP请求

    向服务器发出HTTP请求了。这一步调用XMLHttpRequest对象的open和send方法。

    HTTP_Request.open('GET','http://www.example.org/some.file',true);

    HTTP_Request.send(null)

    按照顺序,open调用完毕之后要调用send方法。send的参数如果是以Post方式发出的话,可以是任何想传给服务器的内容。
    注意 : 如果要传文件或者 Post 内容给服务器,必须先调用 setRequestHeader 方法,修改 MIME 类别。如下:
    HTTP_Request.setRequestHeader ( Content- Type , application /x-www-form- urlencoded );

    这时资料则以查询字符串的形式列出,作为send的参数,例如:

    name=value&anothername=othervalue&so=on

    D、处理服务器返回的信息

    处理响应处理函数都应该做什么。

     1 首先,它要检查XMLHttpRequest对象的readyState值,判断请求目前的状态。参照前文的属性表可以知道,readyState值为4的时候,代表服务器已经传回所有的信息,可以开始处理信息并更新页面内容了。如下:
     2 if (HTTP_Request.readyState == 4) {
     3     // 信息已经返回,可以开始处理
     4 } else {
     5     // 信息还没有返回,等待
     6 }
     7   服务器返回信息后,还需要判断返回的HTTP状态码,确定返回的页面没有错误。所有的状态码都可以在W3C的官方网站上查到。其中,200代表页面正常。
     8 if (HTTP_Request.status == 200) {
     9       // 页面正常,可以开始处理信息
    10 } else {
    11     // 页面有问题
    12 }

    E、动态显示信息

    XMLHttpRequest对成功返回的信息有两种处理方式: @H_499_301@
    responseText:将传回的信息当字符串使用;
    responseXML:将传回的信息当XML文档使用,可以用DOM处理。

    数据格式提要

    在服务器端 AJAX 是一门与语言无关的技术。在业务逻辑层使用何种服务器端语言都可以。

    从服务器端接收数据的时候,那些数据必须以浏览器能够理解的格式来发送。服务器端的编程语言只能以如下 3 种格式返回数据:

    •HTML
    •XML
    •JSON

    解析 HTML

    HTML 由一些普通文本组成。如果服务器通过 XMLHttpRequest发送 HTML, 文本将存储在 responseText属性中。

    插入 HTML 代码最简单的方法是更新这个元素的 innerHTML属性。

    HTML 小结

    优点:
    •从服务器端发送的 HTML 代码在浏览器端不需要用 JavaScript 进行解析。
    •HTML 的可读性好。
    •HTML 代码块与 innerHTML 属性搭配,效率高。
    缺点:
    •若需要通过 AJAX 更新一篇文档的多个部分,HTML 不合适
    •innerHTML 并非 DOM 标准。

    XML小结

    优点:
    •XML 是一种通用的数据格式。
    •不必把数据强加到已定义好的格式中,而是要为数据自定义合适的标记。
    •利用 DOM 可以完全掌控文档。
    缺点:
    如果文档来自于服务器,就必须得保证文档含有正确的首部信息。若文档类型不正确,那么 responseXML 的值将是空的。
    •当浏览器接收到长的 XML 文件后, DOM 解析可能会很复杂

    JSON 小结

    优点:
    •作为一种数据传输格式,JSON 与 XML 很相似,但是它更加灵巧。
    •JSON 不需要从服务器端发送含有特定内容类型的首部信息。
    缺点:
    •语法过于严谨
    •代码不易读

    HTML/XML/JSON对比小结

    1、若应用程序不需要与其他应用程序共享数据的时候,使用 HTML 片段来返回数据时最简单的
    2、如果数据需要重用,JSON 文件是个不错的选择,其在性能和文件大小方面有优势
    3、当远程应用程序未知时,XML 文档是首选,因为 XML 是 web 服务领域的 “世界语”

    关于AJAX入门ajax入门看这一篇就够了的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于AJAX入门 之 使用 AJAX 修改页面文本内容(四)、AJAX入门---AJAX操作HTML、AJAX入门2、AJAX入门3-AJAX开发步骤等相关知识的信息别忘了在本站进行查找喔。

    本文标签: