Ajax的定义 Ajax不是一个技术,它实际上是几种技术,每种技术都有其独特这处,合在一起就成了一个功能强大的新技术。

  Ajax包括: XHTML和CSS,使用文档对象模型(Document Object Model)作动态显示和交互,使用XML和XSLT做数据交互和操作,使用XMLHttpRequest进行异步数据接收,使用JavaScript将它们绑定在一起。

  传统的web应用模型工作起来就象这样:大部分界面上的用户动作触发一个连接到Web服务器的HTTP请求。 服务器完成一些处理---接收数据,处理计算,再访问其它的数据库系统,最后返回一个HTML页面到客户端。这是一个老套的模式,自采用超文本作为web使用以来,一直都这样用, 但看过《The Elements of User Experience》的读者一定知道,是什么限制了Web界面没有桌面软件那么好用。这种旧的途径让我们认识到了许多技术,但它不会产生很好的用户体验。当服务器正在处理自己的事情的时候,用户在做什么?没错,等待。每一个动作,用户都要等待。

  很明显,如果我们按桌面程序的思维设计Web应用,我们不愿意让用户总是等待。当界面加载后,为什么还要让用户每次再花一半的时间从服务取数据?实际上,为什么老是让用户看到程序去服务器取数据呢?Ajax如何不同凡响,通过在用户和服务器之间引入一个Ajax引擎,可以消除Web的开始-停止-开始-停止这样的交互过程. 它就像增加了一层机制到程序中,使它响应更灵敏,而它的确做到了这一点。

  不像加载一个页面一样,在会话的开始,浏览器加载了一个Ajax引擎——采用JavaScript编写并且通常在一个隐藏frame中。这个引擎负责绘制用户界面以及与服务器端通讯。Ajax引擎允许用异步的方式实现用户与程序的交互——不用等待服务器的通讯。所以用户再也不用打开一个空白窗口,看到等待光标不断的转,等待服务器完成后再响应。

  一个HTTP的用户请求动作,现在可通过JavaScript调用Ajax引擎来代替。任何用户动作的响应不再要求直接传到服务器,如:简单的数据校验,内存中的数据编辑,甚至一些页面导航,引擎自己就可以处理它。如果引擎需要从服务器取数据来响应用户动作——假设它提交需要处理的数据,载入另外的界面代码,或者接收新的数据,引擎也可以让这些工作异步进行,通常使用XML, 不用再担误用户界面的交互。

文章来源:http://www.open-open.com 

什么是Ajax? (转载于疯狂客的BLOG)的更多相关文章

  1. Response.Expires 属性 (转载于疯狂客的BLOG)

    Expires 属性 Expires 属性指定了在浏览器上缓冲存储的页距过期还有多少时间.如果用户在某个页过期之前又回到此页,就会显示缓冲区中的版本 语法 Response.Expires [= nu ...

  2. php开发客服系统(持久连接+轮询+反向ajax 转载 http://www.tuicool.com/articles/2mU7v2R)

    php开发客服系统( 下载源码 ) 用户端(可直接给客户发送消息) 客服端(点击用户名.即可给该用户回复消息) 讲两种实现方式: 一:iframe + 服务器推技术comet(反向ajax,即服务器向 ...

  3. 转载 :sql server分区 http://blog.itpub.net/27099995/viewspace-1081158/

    转载:http://blog.itpub.net/27099995/viewspace-1081158/ 在  sql server 2005 之前不提供分区表,但可以用其他方式建立“分区表”,sql ...

  4. 浏览器是怎样工作的(一):基础知识 转载http://ued.ctrip.com/blog/how-browsers-work-i-basic-knowledge.html

    译注: 前两天看到一篇不错的英文文章,叫做 How browsers work,该文概要的介绍了浏览器从头到尾的工作机制,包括HTML等的解析,DOM树的生成,节点与CSS的渲染等等,对于想学习浏览器 ...

  5. 理解水平扩展和垂直扩展 (转载 http://yunjiechao-163-com.iteye.com/blog/2126981)

      当一个开发人员提升计算机系统负荷时,通常会考虑两种方式垂直扩展和水平扩展.选用哪种策略主要依赖于要解决的问题 以及系统资源的限制.在这篇文章中我们将讲述这两种策略并讨论每种策越的优缺点.如果你已经 ...

  6. 转载字典地址:http://blog.csdn.net/aladdinty/article/details/3591789

    相关文章: http://www.360doc.com/content/13/1003/23/14070959_318861279.shtml http://www.360doc.com/conten ...

  7. Tomcat中Listener的使用范例(转载http://cywhoyi.iteye.com/blog/2075848)

    Tomcat是非常有名的开源容器,因其开源我们可以对其做定制化的改变,而且Tomcat在其配置文件方面做了很多注释说明摘要,帮助我们更好的定制化我们所需的功能点. New Tomcat Listene ...

  8. java相关的路径获取 (转载 http://tomfish88.iteye.com/blog/971255)

    在jsp和class文件中调用的相对路径不同.在jsp里,根目录是WebRoot 在class文件中,根目录是WebRoot/WEB-INF/classes 当然你也可以用System.getProp ...

  9. ASP.NET获取IP的6种方法(转载于LanceZhang's Tech Blog)

    服务端: //方法一 HttpContext.Current.Request.UserHostAddress; //方法二 HttpContext.Current.Request.ServerVari ...

随机推荐

  1. Ubuntu 13.04 安装 GCC4.8.1

    终于有了完整实现C++11的GCC 4.8.1. 给自己的系统升级吧. 下面的步骤可以安装GCC4.8.1, 内容来自:http://askubuntu.com/questions/312620/ho ...

  2. c++对象模型之Data布局

    Data语意学 class X{}; class Y : publicvirtual X {}; class Z : publicvirtual X {}; class A : publicY, pu ...

  3. angularjs于directive声明scope说明何时以及如何使用对象修饰符

    于angular我们定义directive方法.查看 return { restrict: 'AE', scope: {}, template: '<div></div>', ...

  4. MySQL(13):Select-order by

    1. 按照字段值进行排序: 语法:        order by 字段  升序|降序(asc|desc) 允许多字段排序,指的是,先按照第一个字段排序,如果说,不能区分,才使用第二个字段,以此类推. ...

  5. linux批量执行工具omnitty使用方法

    一.omnitty概述 在生产环境中,可能会有多台linux主机.运维人员可能会对多台主机进行同样的操作,例:同时在多台主机上添加一个user或查看所有主机的硬件信息,如果没有批量操作工具,设备少于2 ...

  6. sass笔记-4|像写脚本一样写Sass,把能交给Sass办的都交给它

    Sass笔记关于sass的基础部分已经写完,这一篇介绍Sass的高级特性--脚本特性.Sass能做很多事让样式表更智能,我们先会看到Sass眼中的数据类型,在这些数据类型上会有可进行的操作,此外,Sa ...

  7. vs连接mysql

    1.打开vs2012在aspx中添加一个Grid view 控件,,. 2,选择新建数据源. 3,选择数据库. 4,选择新建连接. 5,更改成mysql连接. 6,这里的Server name 是你自 ...

  8. ASP.NET协作应用集成到trsids身份验证服务器的开发流程

    开发Actor协同模块: (参考TRSIDS4.0 协作应用集成手册[asp.net]) ASP.Net协作应用集成到IDS之前,需要开发Actor类实现协作应用回调接口中定义的本地登录.退出.用户信 ...

  9. MTK Android 默认值修改笔记

    1.设置菜单: 1.1位置信息(Location)默认关闭: 请将 alps\frameworks\base\packages\SettingsProvider\res\values\default. ...

  10. Shell中逻辑判断

    [ 条件1 -a 条件2 ]   当1和2都真时才为真 [ 条件1 -o 条件2 ]   当1和2其中一个为真即为真 [ ! 条件 ]           取反   &&     与 ...