同步和异步交互,了解互动
对于一个样本:一般B/S模式(同步)       AJAX技术(异步)

       *  同步:
      提交请求->等待server处理->处理完成返回  这个期间client浏览器不能干不论什么事。
       发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式。  
       你如今传输,我要亲眼看你传输完毕,才去做别的事 。



       *  异步: 
      请求通过事件触发->server处理(这时浏览器仍然能够作其它事情)->处理完成。

       发送方发出数据后,不等接收方发回响应,接着发送下个数据包的通讯方式 。
       你传输吧,我去做我的事了。传输完了告诉我一声 。  
什么是Ajax?

Ajax被觉得是(Asynchronous JavaScript and XML的缩写)。

如今,同意浏览器与server通信而无须刷新当前页面的技术都被叫做Ajax.

Ajax并不是一种新的技术,而是几种原有技术的结合体。它由下列技术组合而成:

1.使用CSS和XHTML来表示。

2. 使用DOM模型来交互和动态显示。

3.使用XMLHttpRequest来和server进行异步通信。

4.使用javascript来绑定和调用。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdXNlcl9sb25nbGluZw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

Ajax的工作原理
       AJAX採用异步交互过程。AJAX在用户与server之间引入一个中间媒介,从而消除了网络交互过程中的处理—等待—处理—等待缺点。

       用户的浏览器在运行任务时即装载了AJAX引擎。AJAX引擎用JavaScript语言编写,通常藏在一个隐藏的框架中。它负责编译用户界面及与server之间的交互。

AJAX引擎同意用户与应用软件之间的交互过程异步进行,独立于用户与网络server间的交流。

如今,能够用Javascript调用AJAX引擎来取代产生一个HTTP的用户动作,内存中的数据编辑、页面导航、数据校验这些不须要又一次加载整个页面的需求能够交给AJAX来运行。

AJAX的原理简单来说通过XmlHttpRequest对象来向server发异步请求。从server获得数据,然后用javascript来操作DOM而更新页面。这当中最关键的一步就是从server获得请求数据。

了解XMLHttpRequest

    XMLHttpRequest是ajax的核心机制,它是在IE5中首先引入的,是一种支持异步请求的技术。

简单的说,也就是javascript能够及时向server提出请求和处理响应。而不堵塞用户。达到无刷新的效果。

XMLHttpRequest属性有:

属性 描写叙述
onreadystatechange  每次状态改变所触发事件的事件处理程序。
responseText         从server进程返回数据的字符串形式。
responseXML       从server进程返回的DOM兼容的文档数据对象。
status                       从server返回的数字代码,比方常见的404(未找到)和200(已就绪)
status Text  伴随状态码的字符串信息
readyState               对象状态值,存有server响应的状态信息。

每当 readyState 改变时,onreadystatechange 函数就会被运行。

readyState 属性可能的值:

  状态    描写叙述
    0   请求未初始化(在调用 open() 之前)
    1   请求已提出(调用 send() 之前)
    2   请求已发送(这里通常能够从响应得到内容头部)
    3   请求处理中(响应中通常有部分数据可用。可是server还没有完毕响应)
    4   请求已完毕,此时能够通过通过responseXml和responseText获取完整的回应数据。 

  可是,因为各浏览器之间存在差异。所以创建一个XMLHttpRequest对象可能须要不同的方法。这个差异主要体如今IE和其他浏览器之间。

以下是一个比較标准的创建XMLHttpRequest对象的方法。

	/*
* 创建XMLHttpRequest对象
* */
function ajaxFunction(){
var xmlHttp;
try { // Firefox, Opera 8.0+, Safari
xmlHttp = new XMLHttpRequest();
}
catch (e) { // Internet Explorer
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e) {
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e) {
alert("您的浏览器不支持AJAX。");
return false;
}
}
}
return xmlHttp;
}



AJAX(client)开发步骤:
1.创建XMLHttpRequest对象
var xmlHttp = ajaxFunction();
2.接受server端的响应
/* readyState 属性存有server响应的状态信息。

每当 readyState 改变时,onreadystatechange 函数就会被运行。*/
xmlHttp.onreadystatechange = function(){
if(xmlHttp.readyState==4){
var data=xmlHttp.responseText;
alert("xmlHttp.responseText:"+data);
}
}
3.打开和server的连接
/*
* bstrMethod: http方法,比如:POST、GET、PUT及PROPFIND。大写和小写不敏感。
* bstrUrl: 请求的URL地址,能够为绝对地址也能够为相对地址。 * varAsync [可选]:布尔型。指定此请求是否为异步方式,默觉得true。假设为真,当状态改变时会调用onreadystatechange属性指定的回调函数。
* bstrUser [可选]:假设server须要验证,此处指定username,假设未指定,当server须要验证时。会弹出验证窗体。
* bstrPassword [可选]:验证信息中的password部分,假设username为空。则此值将被忽略。
*/
xmlHttp.open(bstrMethod, bstrUrl, varAsync, bstrUser, bstrPassword);
//POST方式向server发送AJAX请求时要通过设置请求头来指定为application/x-www-form-urlencoded编码类型, 代码例如以下:
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
4.发送请求到httpserver
/* varBody:欲通过此请求发送的数据。

*/
xmlHttp.send(varBody);

版权声明:本文博客原创文章,博客,未经同意,不得转载。

AJAX入门——工作原理的更多相关文章

  1. AJAX的工作原理及其优缺点

    1.什么是AJAX?AJAX全称为“Asynchronous JavaScript and XML”(异步JavaScript和XML),是一种创建交互式网页应用的网页开发技术.它使用:使用XHTML ...

  2. Ajax的工作原理以及优点、缺点 (汇总)

    最近空闲时间,有朋友问我关于Ajax的工作原理,在这里我结合自己的工作经验和网上大佬的经验做一个总结,如有不足,请各位业内大佬指正 在我们了解Ajax之前,我们先来了解一下Javascript的执行原 ...

  3. Ajax的工作原理以及优缺点

    Ajax的工作原理 : 相当于在客户端与服务端之间加了一个抽象层(Ajax引擎),使用户请求和服务器响应异步化,并不是所有的请求都提交给服务器,像一些数据验证和数据处理 都交给Ajax引擎来完成,只有 ...

  4. Ajax的工作原理

    Ajax的核心是JavaScript对象XmlHttpRequest.该对象在Internet Explorer 5中首次引入,它是一种支持异步请求的技术.简而言之,XmlHttpRequest使您可 ...

  5. ajax及其工作原理

    1.关于ajax的名字 ajax 的全称是Asynchronous JavaScript and XML,其中,Asynchronous 是异步的意思,它有别于传统web开发中采用的同步的方式. 2. ...

  6. Ajax学习--理解 Ajax 及其工作原理

    Ajax 是 Asynchronous JavaScript and XML(以及 DHTML 等)的缩写. 下面是 Ajax 应用程序所用到的基本技术:• HTML 用于建立 Web 表单并确定应用 ...

  7. 【AppScan】入门工作原理详解

    AppScan,即 AppScan standard edition.其安装在 Windows 操作系统上,可以对网站等 Web 应用进行自动化的应用安全扫描和测试.Rational AppScan( ...

  8. AppScan入门工作原理详解

    AppScan,即 AppScan standard edition.其安装在 Windows 操作系统上,可以对网站等 Web 应用进行自动化的应用安全扫描和测试. Rational AppScan ...

  9. ajax的工作原理2

    Ajax是异步javascript和xml,可以在不重新加载整个网页的情况下,与服务器异步数据交换,对网页中某个部分进行局部刷新. Ajax是如何实现局部刷新的: 在脚本设置window对象的loca ...

随机推荐

  1. Kinect开发笔记之二Kinect for Windows 2.0新功能

    这是本博客翻译文档的第一篇文章.笔者已经苦逼的竭尽全力的在翻译了.但无奈英语水平也是非常有限.不正确或者不妥当不准确的地方必定会有,还恳请大家留言或者邮件我以批评指正.我会虚心接受. 谢谢大家.   ...

  2. IQ调制、整形滤波器与星座映射

    http://www.cnblogs.com/touchblue/archive/2013/01/15/2861952.html 现代通信中.IQ调制基本上属于是标准配置,由于利用IQ调制能够做出全部 ...

  3. RestServer 1.1发布

    具体配置方法参照第一版:http://www.cnblogs.com/devgis/p/4947191.html BUG反馈 QQ:80163278 邮箱:devgis@qq.com 淘宝:http: ...

  4. 编写高性能Javascript

    编写高性能Javascript 多年来,Javascript一直在web应用开发中占据重要的地位,但是很多开发者往往忽视一些性能方面的知识,特别是随着计算机硬件的不断升级,开发者越发觉得Javascr ...

  5. .NET反编译之Reflector

    .NET反编译之Reflector 这几日由于公司需要, 看了些.NET反编译技巧,特地和大家分享下 .NET反编译工具很多,Reflector是其中一个很优秀的工具,所以就用它来进行反编译工作了.今 ...

  6. 如何安装一个优秀的BUG管理平台(转)

    前言 就BUG管理而言,国内的禅道做得很不错,而且持续有更新.我们来看看如何从头到尾安装禅道,各位要注意的是,不是文章深或者浅,而是文章如何在遇到问题的时候,从什么途径和用什么方法解决问题的.现在发觉 ...

  7. atitit.无损传输二进制数据串传输网络

    atitit.无损传输二进制数据串传输网络 1. gbk的网络传输问题,为什么gbk不能使用来传输二进制数据 1 2. base64 2 3. iso-8859-1  (推荐) 2 4. utf-8  ...

  8. [模拟] hdu 4452 Running Rabbits

    意甲冠军: 两个人在一个人(1,1),一个人(N,N) 要人人搬家每秒的速度v.而一个s代表移动s左转方向秒 特别值得注意的是假设壁,反弹.改变方向 例如,在(1,1),采取的一个步骤,以左(1,0) ...

  9. libmsgque官方主页

    libmsgque 消息队列(MESSAGE QUEUE)库项目简析 注: 本文如果你已经有linux开发环境 请确保你使用本库时是tag版本号. target=libmsgque-1.0 本项目採用 ...

  10. 手机新闻网站,手持移动新闻,手机报client,jQuery Mobile手机新闻网站,手机新闻网站demo,新闻阅读器开发

    我们坐在地铁.经常拿出新浪手机查看新闻.腾讯新闻,或者看新闻,等刷微信功能.你有没有想过如何实现这些目标. 移动互联网.更活泼. 由于HTML5未来,jQuery Moblie未来. 今天我用jqm的 ...