`
dengyll
  • 浏览: 93404 次
社区版块
存档分类
最新评论

轻松掌握AJAX异步通信

 
阅读更多


首先简单的了解一下下什么是Ajax:

AJAX是一种运用JavaScript和可扩展编辑语言(XML),在网络浏览器和服务器之间传送或接收数据的技术。

AJAX是WEB2.0的核心之一.AJAX技术运用于浏览器中,使向服务器索取网页的部分信息成为可能.

再简单的了解一下下它的工作原理:

AJAX的工作原理相当与在用户和服务器之间加了一个中间层,使用户请求与服务器响应异步化(我们经常用它来做数据校验)。这样还可以把以前的一些服务器负担的工作转交给客户端,利用客户端闲置的处理能力来处理这些工作,减轻服务器和宽带的负担,同时也可以缩短用户等待时间,提高工作效率。

这样说有点抽象,看两个图就明白了:

上图为没有使用异步通信技术的事件请求,明显的看出只有得到通知后才能继续输入密码和其它需要的信息,这样是不是很浪费时间,有时候时间长了,用户也可能会等的不耐烦,放弃注册也不是没有可能。


上图为使用了异步通信技术后的事件请求,用户不用等待消息的返回,继续输入就可以了,当用户输入到下面的某一项时,通知的消息可能就返回了,在相应的地方给出提示,这样也不影响用户的操作,是不是很友好,很强大。

AJAX的核心是JavaScript对象XMLHttpRequest

XMLHttpRequest提供客户端同HTTP服务器异步通信的协议.通过这个协议,AJAX可以使页面像桌面程序一样同服务器端进行数据层面的交换,而不必每次都刷新页面,也不用每次都将数据处理的工作都交给服务器来做,这样既减轻了服务器负担又加快了响应速度,缩短了用户等待的时间.

了解几个XMLHttpRequest对象的方法:

Abort()

停止当前请求

getAllResponseHeaders()

返回HTTP请求的所有响应头部的键/值字符串

getResponseHeader("header")

返回指定头部属性的字符串值

Open("method", "url", true)

建立对服务器的调用。Method参数可以是GET POST PUT, url参数可以是相对URL或绝对URL,true/false代表是否要进行异步通信

Send(content)

向服务器发送请求(要是get提交参数为null)

setRequestHeader("header","value")

为指定头部属性设置指定值

了解几个XMLHttpRequest对象的属性:

Onreadystatechange状态改变的时间触发器,通常绑定一个JavaScript 函数,每当状态发生改变时,就调用该函数

readyState 请求的状态,有5个可取值:

0 = 未初始化

1 = 读取中

2 = 已读取

3 = 交互中

4 = 完成

responseText 从服务器返回的文本形式的响应内容

responseXML 从服务器返回的兼容DOM的XML文档对象

Status 从服务器返回的状态码,例如404="文件找不到" 200 = "成功"

statusText 从服务器返回的状态文本信息,例如OKNot Found(未找到)

最后我们一起了解一下实现代码(有详细的注释,看了就懂):

<script language ="javascript">
   //定义一个将指向XMLHttpRequest对象的变量
   var xmlHttp = null;
   //定义一个函数用于创建XMLHttpRequest对象
   function createXMLHttpRequest(){
       if(window.ActiveXObject){            //表示当前浏览器是IE
           xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
       }
       else if(window.XMLHttpRequest){      
           xmlHttp = new XMLHttpRequest();     //表示当前浏览器不是IE,如:firefox
       }
}
 
   //定义一个函数用于启动与服务器的异步通信
   function begin(){
       createXMLHttpRequest();                 //调用createXMLHttpRequest函数
       xmlHttp.onreadystatechange = processor;     //将事件触发器绑定到 processor上
       xmlHttp.open("GET", "test.xml", true);     //使用GET方法建立对服务器资源test.xml的一个异步调用
       xmlHttp.send(null);                      //向服务器发送请求 ,参数为null
}
 
   //定义一个状态处理函数用于处理状态触发器的状态改变
   function processor(){
       //如果处理请求完成
       if(xmlHttp.readyState == 4){
           //如果服务器返回状态为成功
           if(xmlHttp.status = 200){
                //将从服务器返回的内容报告给用户
                alert("从服务器返回的内容为:"+ xmlHttp.responseText);
           } else{
                alert("请求失败,错误码="+ xmlHttp.status);
           }
       }
    }
</script>

下一篇博客将介绍AJAX的优缺点以及Jquery是如何对它进行封装方便我们轻松实现异步通信。


分享到:
评论

相关推荐

    轻松掌握Ajax.net系列教程(主要讲toolkit).doc

    Ajax.NET的引入,使得开发人员能够利用JavaScript、XMLHttpRequest对象和服务器端.NET框架进行异步通信,创建更加动态和响应式的网页应用。 【Ajax Control Toolkit】是Ajax.NET的一个重要组成部分,它提供了大量的...

    基于GWT轻松掌握AJAX开发

    Google Web Toolkit (GWT) 是一个开源的开发框架,专为简化AJAX(异步JavaScript + XML)应用的构建而设计。GWT利用Java作为开发语言,通过一个强大的Java-to-JavaScript编译器,将Java代码转换为可以在各种浏览器上...

    asp.net ajax异步获取数据...前台直接调用后台方法版..

    ASP.NET AJAX技术是一种用于构建富交互式Web应用的框架,它允许前端JavaScript代码与后端服务器端代码进行异步通信,无需刷新整个页面。在标题和描述中提到的"前台直接调用后台方法",正是ASP.NET AJAX的核心特性之...

    PHP全栈开发入门到实战,从零基础到月薪20K,轻松掌握PHP+Vue+NodeJS+Redis+Vue+AJAX+MVC等技能

    本课程不仅深入浅出地讲解了PHP基础语法与进阶技巧,还融合了当前最热门的Vue.js前端框架、AJAX异步通信技术、NodeJS后端扩展等技能,让您掌握前后端通吃的能力。 此外,课程还涵盖了Redis高速缓存、Memcache内存...

    轻松学习AJAX技术

    AJAX(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。...对于开发者来说,掌握AJAX不仅意味着技能的提升,也是向更高级Web开发迈进的关键一步。

    掌握 Ajax

    - **异步通信**:Ajax 最为核心的特点之一便是能够实现客户端与服务器之间的异步通信。通过 XMLHttpRequest 对象,客户端可以向服务器发送请求并在后台接收响应,而无需刷新整个页面。 - **动态更新**:利用 DHTML ...

    三天轻松学会Ajax

    在本教程中,你将在三天内掌握Ajax的基础知识,通过丰富的实例来理解其工作原理。 **第一天:了解Ajax基本概念** 1. **异步通信**:Ajax的核心是能够在不刷新整个页面的情况下与服务器交换数据并更新部分网页内容...

    让你真正掌握Ajax

    ### 让你真正掌握Ajax #### 一、Ajax概述及发展历程 Ajax,全称为“Asynchronous JavaScript and XML”,中文常译作“异步JavaScript与XML”,是一种网页应用开发技术,能够实现更加流畅、交互性强的用户体验。它...

    掌握AJAX

    Ajax的核心概念之一是异步通信。传统的Web应用程序在用户触发操作后,会整个页面重新加载,而Ajax应用程序则只更新需要改变的部分。这种模式减少了用户等待时间,提高了交互性。例如,当你在电商网站上搜索商品时,...

    redis + ajax实现异步下拉列表加载

    总结,结合Redis的高速缓存能力和Ajax的异步通信特性,我们可以创建一个高效、响应迅速的下拉列表加载功能,提升Web应用的用户体验。理解并掌握这些技术的结合使用,对于任何Web开发者来说都是非常有价值的技能。

    疯狂Ajax讲义源码

    JavaScript是实现Ajax的核心语言,负责处理用户交互、异步通信以及动态更新页面。DOM(Document Object Model)是HTML和XML文档的结构化表示,JavaScript通过DOM API可以操作文档元素,实现动态内容的添加、删除和...

    完全手册:ASP.net.Ajax电子教程

    - **异步通信**:AJAX的核心特性是允许在后台与服务器进行通信,不打断用户的交互。这意味着用户可以继续浏览页面,而数据在后台悄悄更新。 - **JavaScript和XML**:虽然XML最初是AJAX数据传输格式,但现在JSON...

    冯威ajax 全部源码

    通过深入研究冯威的Ajax源码,不仅能掌握Ajax技术本身,还能了解到JavaScript和jQuery在Web开发中的应用,这对于提升前端开发技能、理解Web交互逻辑具有极大的帮助。实践是检验真理的唯一标准,结合这些源码进行动手...

    ASP.NET AJAX深入浅出系列课程(21):利用Microsoft AJAX Library开发客户端组建(上)

    3. **客户端对象模型**:Microsoft AJAX Library提供了丰富的客户端对象,如PageRequestManager和ScriptObjectModel,它们提供了与服务器进行异步通信的能力,以及操作DOM元素的方法。 4. **扩展和自定义控件**:...

    ajax的所有组件.ajax的组件

    在"轻松掌握Ajax_net系列教程二:部署Ajax Control Toolkit"中,你将学习如何在ASP.NET项目中安装和使用Ajax Control Toolkit,以及如何结合Ajax技术来提升Web应用的用户体验。通过阅读教程和实践相关示例,你将对...

    unigui_ajax网页交互

    在Unigui框架下,我们可以利用Ajax技术提高用户体验,减少网络延迟,实现页面的异步通信。 1. **Unigui中的Ajax集成**: Unigui提供了内置的Ajax支持,允许开发者创建Ajax请求并在后台处理数据,然后将结果返回到...

    ajax学习文档 很好的学习文档 希望大家好好的利用哦

    这样,开发者只需调用这个函数,就能轻松实现异步通信。 **数据格式:XML与JSON** 在早期的Ajax应用中,XML常用于数据交换,但XML的解析和生成相对复杂。随着JSON(JavaScript Object Notation)的流行,现在更倾向...

    Ajax 2.0 Ajax 3.5

    总之,Ajax 2.0 和 Ajax 3.5 在C#环境中为Web开发带来了显著的改进,它们简化了异步通信的实现,增强了用户体验,并且提供了丰富的工具和控件来加速开发进程。通过熟练掌握这些技术,开发者可以构建更加动态和高效的...

    asp.net ajax控件应用轻松入门

    - **网络协议层**:负责异步通信,允许客户端与服务器之间的高效数据传输。 - **组件模型**:定义了一套用于创建可扩展的服务器端控件和行为的架构。 - **扩展器(Extender)基类**:允许自定义控件的行为,如...

Global site tag (gtag.js) - Google Analytics