`

ajax和XMLHTTP原理

阅读更多
Ajax的原理简单来说通过XmlHttpRequest对象来向服务器发异步请求,从服务器获得数据,然后用javascript来操作DOM而更新页面。这其中最关键的一步就是从服务器获得请求数据。要清楚这个过程和原理,我们必须对 XMLHttpRequest有所了解。
XMLHttpRequest是ajax的核心机制,它是在IE5中首先引入的,是一种支持异步请求的技术。简单的说,也就是javascript可以及时向服务器提出请求和处理响应,而不阻塞用户。达到无刷新的效果。
所以我们先从XMLHttpRequest讲起,来看看它的工作原理。
首先,我们先来看看XMLHttpRequest这个对象的属性。
它的属性有:
onreadystatechange 每次状态改变所触发事件的事件处理程序。
responseText     从服务器进程返回数据的字符串形式。
responseXML    从服务器进程返回的DOM兼容的文档数据对象。
status           从服务器返回的数字代码,比如常见的404(未找到)和200(已就绪)
status Text       伴随状态码的字符串信息
readyState       对象状态值
0 (未初始化) 对象已建立,但是尚未初始化(尚未调用open方法)
1 (初始化) 对象已建立,尚未调用send方法
2 (发送数据) send方法已调用,但是当前的状态及http头未知
3 (数据传送中) 已接收部分数据,因为响应及http头不全,这时通过responseBody和responseText获取部分数据会出现错误,
4 (完成) 数据接收完毕,此时可以通过通过responseXml和responseText获取完整的回应数据

但是,由于各浏览器之间存在差异,所以创建一个XMLHttpRequest对象可能需要不同的方法。这个差异主要体现在IE和其它浏览器之间。下面是一个比较标准的创建XMLHttpRequest对象的方法。

  function CreateXmlHttp()
   {
  
   //非IE浏览器创建XmlHttpRequest对象
    if(window.XmlHttpRequest)
    {
     xmlhttp=new XmlHttpRequest();
    }
    //IE浏览器创建XmlHttpRequest对象
     if(window.ActiveXObject)
    {
    try
    {
     xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");    
    }
    catch(e)
    {
    try{
     xmlhttp=new ActiveXObject("msxml2.XMLHTTP");
     }
     catch(ex){}
    }
    }
   }
function Ustbwuyi()
   {
    var data=document.getElementById("username").value;  
        CreateXmlHttp();
        if(!xmlhttp)
        {
         alert("创建xmlhttp对象异常!");
         return false;
        }      
        xmlhttp.open("POST",url,false);
        xmlhttp.onreadystatechange=function()
        {  
         if(xmlhttp.readyState==4)
           {
           document.getElementById("user1").innerHTML="数据正在加载...";
             if(xmlhttp.status==200)
             {
              document.write(xmlhttp.responseText);
             }     
           }
         }
        xmlhttp.send();
  
   }
如上所示,函数首先检查XMLHttpRequest的整体状态并且保证它已经完成(readyStatus=4),即数据已经发送完毕。然后根据服务器的设定询问请求状态,如果一切已经就绪(status=200),那么就执行下面需要的操作。
对于XmlHttpRequest的两个方法,open和send,其中open方法指定了:
a、向服务器提交数据的类型,即post还是get。
b、请求的url地址和传递的参数。
c、传输方式,false为同步,true为异步。默认为true。如果是异步通信方式(true),客户机就不等待服务器的响应;如果是同步方式(false),客户机就要等到服务器返回消息后才去执行其他操作。我们需要根据实际需要来指定同步方式,在某些页面中,可能会发出多个请求,甚至是有组织有计划有队形大规模的高强度的request,而后一个是会覆盖前一个的,这个时候当然要指定同步方式。
    Send方法用来发送请求。

知道了XMLHttpRequest的工作流程,我们可以看出,XMLHttpRequest是完全用来向服务器发出一个请求的,它的作用也局限于此,但它的作用是整个ajax实现的关键,因为ajax无非是两个过程,发出请求和响应请求。并且它完全是一种客户端的技术。而XMLHttpRequest正是处理了服务器端和客户端通信的问题所以才会如此的重要。
现在,我们对ajax的原理大概可以有一个了解了。我们可以把服务器端看成一个数据接口,它返回的是一个纯文本流,当然,这个文本流可以是XML格式,可以是Html,可以是Javascript代码,也可以只是一个字符串。这时候,XMLHttpRequest向服务器端请求这个页面,服务器端将文本的结果写入页面,这和普通的web开发流程是一样的,不同的是,客户端在异步获取这个结果后,不是直接显示在页面,而是先由javascript来处理,然后再显示在页面。至于现在流行的很多ajax控件,比如magicajax等,可以返回DataSet等其它数据类型,只是将这个过程封装了的结果,本质上他们并没有什么太大的区别。
分享到:
评论

相关推荐

    Ajax和XMLHttp原理

    Ajax(Asynchronous JavaScript and XML,异步JavaScript和XML)是一种在无需刷新整个网页的情况下,能够更新部分网页的技术。...理解和掌握Ajax的工作原理以及XMLHttpRequest的使用是现代Web开发者必备的技能之一。

    ajax的基本原理以及实现

    ### AJAX的基本原理及其实现 #### 一、引言 AJAX(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的...对于开发者来说,掌握 AJAX 的基本原理和实现方法是非常重要的。

    Ajax基本运行原理

    ### Ajax基本运行原理详解 #### 引言 随着互联网技术的不断发展,用户对于网页应用程序的交互性和用户体验的要求越来越高。传统的浏览器/服务器(B/S)架构虽然解决了早期客户端/服务器(C/S)架构中存在的部署和...

    Ajax底层原理及使用有那些方式和面试问题

    Ajax(Asynchronous JavaScript and XML,异步JavaScript和XML)是一种用于创建交互式网页应用的技术。它不是一种新的编程语言,而是一种使用现有标准的新方法,能够让Web应用程序更加高效、交互性更强。 - **发明...

    ajax原理及用法

    ### AJAX原理及用法 #### 一、什么是Ajax技术? Ajax(Asynchronous JavaScript and XML,异步JavaScript与XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。通过在后台与服务器进行少量数据...

    xmlhttp原理实例代码

    XMLHttpRequest(简称XHR)是Web开发中的一个关键技术,它允许JavaScript在不刷新整个页面的情况下与服务器进行异步数据交换,这种技术被称为Ajax(Asynchronous JavaScript and XML),虽然名字中有XML,但实际传输...

    AJAX技术原理和使用方法

    ### AJAX技术原理与使用方法详解 #### 一、引言 AJAX(Asynchronous JavaScript and XML),即异步JavaScript和XML技术,是一种用于创建快速动态网页的技术。它并不是一种单一的技术,而是多种技术的组合使用,包括...

    ajax详细笔记原理

    ### AJAX详解及原理 #### 一、引言 在探讨AJAX(Asynchronous JavaScript and XML)之前,我们先来理解一下这个技术的概念及其重要性。AJAX是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。通过在...

    ajax工作原理

    通过本篇文章的学习,我们可以了解到AJAX的基本概念、工作原理以及如何使用XMLHttpRequest对象发起GET和POST请求。掌握了这些基础知识后,可以进一步探索如何利用AJAX创建更高效、更友好的Web应用程序。

    详解Ajax的基本原理

    **Ajax基本原理** Ajax,全称为Asynchronous JavaScript + XML,是一种在无需刷新整个网页的情况下,能够更新部分网页内容的技术。最初由Jesse James Garrett提出,它并非一项全新的技术,而是结合了JavaScript、...

    xmlhttp.rar_XMLHTTP delphi_delphi xmlHt_delphi xmlhttp_xmlhttp

    首先,XMLHTTP组件是Windows操作系统内置的MSXML库的一部分,它提供了与HTTP服务器通信的能力,可以发送HTTP请求并接收响应,常用于AJAX(Asynchronous JavaScript and XML)技术中。在Delphi中,可以通过创建...

    Ajax技术原理深入解析

    Ajax 技术是一种在不刷新整个网页的情况下,能够更新部分网页内容的技术,它结合了多种技术,包括异步 JavaScript 和 XML(以及 DHTML),由 Adaptive Path 的 Jesse James Garrett 首次提出。Ajax 的核心是利用 ...

    Ajax实现原理

    ### Ajax实现原理详解 #### 一、Ajax简介 Ajax(Asynchronous JavaScript and XML)是一种用于创建快速动态网页的技术。通过在后台与服务器进行少量数据交换,Ajax可以使网页实现异步更新,这意味着可以在不重新...

    Ajax原理分析及其实现的简单代码

    让更多人了解ajax技术.function _open(requestUrl) { var xmlHttp = false; var versions = ['Microsoft.XMLHTTP', 'MSXML.XMLHTTP', 'Microsoft.XMLHTTP', 'Msxml2.XMLHTTP.7.0', 'Msxml2.XMLHTTP.6.0', 'Msxml2....

    ajax原理文档说明txt格式

    ### AJAX原理详解 ...掌握AJAX的基本原理和技术细节对于Web开发者来说至关重要。随着技术的发展,虽然XMLHttpRequest已经被Fetch API等更现代化的API所取代,但AJAX的概念依然适用于各种异步数据交互场景中。

    ajax原理,xmlHttpRequest

    ### AJAX原理与XMLHttpRequest详解 #### 一、引言 AJAX(Asynchronous JavaScript and XML,异步JavaScript和XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。其核心在于使用`XMLHttpRequest`...

    ajax 实现二级下拉框,地址联动,serverlet,java,xmlHttp

    在这个特定的场景中,我们讨论的是如何使用Ajax实现二级下拉框的联动,以及涉及到的技术如Servlet、Java和XMLHttp。 首先,二级下拉框联动通常用于地理信息的选择,例如省份选择后,城市下拉框自动更新对应省份的...

    ajax xmlhttp javascript

    ### AJAX详解:异步JavaScript与XML的精妙融合 AJAX(Asynchronous JavaScript and XML)是一种在无需重新加载整个...掌握AJAX的基本原理和技术,对于任何希望构建现代化、高性能Web应用的开发者来说都是必不可少的。

    ajax技术原理及工作原理

    Ajax的目标就是弥合桌面应用程序和Web应用程序之间的差距,提供类似桌面应用的即时响应和动态交互。它利用DHTML(Dynamic HTML)和DOM(Document Object Model)来更新页面内容,而不是重新加载整个页面。DHTML允许...

    实验五 AJAX开发及JSP验证码

    1. **原理**:AJAX的核心是XMLHttpRequest对象,它可以在后台与服务器通信,而不会打断用户的操作。通过创建XMLHttpRequest对象,设置请求方法、URL以及是否异步处理,然后发送请求,最后处理服务器返回的响应。 2....

Global site tag (gtag.js) - Google Analytics