Ajax 介绍

Ajax 介绍
Ajax 介绍

Ajax 概述 经典案例1:搜索关键词建议 系统(Google Suggest ) 经典案例2:优秀的电子邮件服务 系统(Gmail ) 第一个Ajax 应用程序:Hello World! 小结

当前Web 开发领域最新的时髦术语Ajax ,到底代表着什么含义?它从何发展而来?在当今Web 开发领域中扮演什么样的角色,有着什么样的影响?未来又将去往何处?本章将带领读者走进Ajax 的世界。 本章首先在“Ajax 概述”中对Ajax 作基本的介绍,讲解其含义和发展历史。然后介绍两个经典的Ajax 应用案例:Google Suggest 和Gmail 。最后,笔者将和读者一起来创建第一个Ajax 应用程序“Hello World !”。

什么是Ajax 1 第 章

·4·

Ajax从入门到精通

1.1 Ajax概述

Ajax全称是Asynchronous JavaScript and XML,即异步JavaScript和XML,这也概括了Ajax应用程序的基本特点:由JavaScript编写、程序异步执行、用XML来封装和传输数据。

Ajax并不是什么新技术,而是将各种已经存在的成熟技术,采用一种崭新的开发模式重新揉合在一起,使得古老的B/S方式的Web开发焕发了新的活力,迎来了第二个春天。具体来说,Ajax主要由以下技术组成:

?HTML

?CSS

?DOM(HTML DOM 和XML DOM)

?JavaScript

?XML

?XMLHttpRequest

1.1.1 关键技术:XMLHttpRequest

可以看到,除了XMLHttpRequest技术,其他技术都是目前得到理解和广泛使用的基于Web标准的技术。而XMLHttpRequest技术正是整个Ajax技术体系的核心,是Ajax得以区分传统Web应用程序的标志。

XMLHttpRequest最初叫做XMLHTTP,由微软(Microsoft)于1999年在IE5.0中率先推出。XMLHttpRequest为运行于浏览器中的JavaScript脚本提供了一种在页面内与服务器通信的手段,这样就使得页面内的JavaScript可以在不刷新页面的前提下,向服务器提交数据,及从服务器获取数据。

XMLHttpRequest的出现打破了传统Web应用程序的固有模式,即Web应用程序再也不一定是由一组连续的页面组成。在传统的Web应用程序中,用户大部分交互性的操作,都需要等待页面的切换并刷新整个页面,而在页面刷新的间隙中,用户只能“傻傻地”等待,什么也做不了。XMLHttpRequest 的出现改变了这一笨拙的开发模式,使得用户可以不切换页面就能提交数据到服务器,并能局部更新页面以显示更新后的数据,为用户提供了更好的用户体验。

正是由于XMLHttpRequest的优越性,使得其他厂商的浏览器纷纷开始支持XMLHttpRequest。几乎所有的主流浏览器,例如IE、Firefox、Netscape、Opera以及苹果(Apple)公司推出的Safari,全部都支持这个技术。如今,XMLHttpRequest已经成为事实标准。

1.1.2 Ajax名词的由来

虽然XMLHttpRequest的出现已经有近十个年头,但是Ajax这个概念却是直到2005年2月才被Adaptive Path公司负责用户体验策略的主管Jesse James Garrett正式提出。他在2005年2月18日发表了一篇题为《Ajax:A New Approach to Web Applications》(Ajax:一个Web应用的新途径)的论文,

第1章什么是Ajax ·5·

明确地将Ajax定义为Asynchronous JavaScript and XML,这就是Ajax这个名词的由来。

而Ajax技术应用的先驱和主要推动者则是著名的搜索引擎公司:Google。Google在2005年推出的Gmail,充分展示了Ajax的魅力所在,吸引了无数用户。从此,在全世界范围内逐渐刮起了一阵Ajax 的旋风。

Google公司在之后相继推出的新版Google Groups、Google Suggest和Google Maps中,都给予了Ajax充分的表现空间。Google Suggest能够根据用户的输入立刻显示关键词的建议和相关条目的搜索结果数量。Google Maps给用户呈现出可以任意放大、缩小和移动地图的超凡体验。而后,Google公司更是基于Ajax构建出了Gmail Chat、电子表格、日历等接近传统桌面应用程序体验的Web应用程序,将Ajax和Web的发展又往前推进了一大步。

与此同时,其他厂商也不甘示弱。微软在推出的MSN Space和MSN Virtual Earth服务中都大量采用了Ajax技术,并且还提供了一个名为Atlas的基于https://www.360docs.net/doc/884028759.html, 2.0的Ajax开发框架(最终被命名为https://www.360docs.net/doc/884028759.html, Ajax)。另一个广为人知的Ajax应用,则是被雅虎收购的https://www.360docs.net/doc/884028759.html,提供的一种基于Ajax 技术的图片管理服务。虽然其功能并不是十分强大,但是用户可以非常方便地在浏览器中对图片的标题、描述和标签等内容进行修改,这些改变在用户结束输入的同时就被保存了下来,并留在了网页上。

随着Ajax应用的逐渐广泛和深入,Ajax应用程序的开发效率成为了一个重要的问题。在这时,先后涌现出了一大批优秀的Ajax应用框架:从底层开发框架Prototype.js到UI框架YUI/YUI-ext,再到代码组织框架JSVM等;从早期单纯的客户端框架,到后期与服务端整合的开发框架,如https://www.360docs.net/doc/884028759.html, Ajax、GWT等,都标志着Ajax技术正在逐渐走向成熟和辉煌。

1.2 经典案例1:搜索关键词建议系统(Google Suggest)

1.1节向读者介绍了Ajax的基本概念和发展历史。为了让读者对Ajax技术有更深刻和直观的了解,本节和1.3节特别准备了两个经典的Ajax应用案例给读Array者。这两个案例来自1.1节中提到的Ajax技术主要的推

动者:Google公司,其分别是搜索关键词建议系统Google

Suggest和邮件服务系统Gmail。

Google Suggest是Google公司推出的一项搜索关键

词建议系统。在中文版的Google网站,是默认开启这项

功能的,读者可以直接访问https://www.360docs.net/doc/884028759.html,来体验

Google Suggest的功能。而在英文版的Google网站中,

Google Suggest默认被关闭了,所以需要访问专门的页面

https://www.360docs.net/doc/884028759.html,/ webhp?complete=1&hl=en。中文

图1.1 Google中文版搜索界面

版的Google搜索界面如图1.1所示。

Google Suggest的概念其实非常简单,就是当用户在搜索框输入关键词时,程序自动根据用户输入

的一部分关键词来检索相关建议词及其搜索结果的数量,并以下拉列表框的样式将这些建议词显示在输入框的下方,供用户选择。

如图1.2所示,在搜索框中输入“AJAX”后,搜索框下方出现了一个下拉列表框,Google Suggest

Ajax 从入门到精通

·6· 自动选择了10条建议词,并显示在这个列表框中。当用户改变输入框中的关键词时,下拉列表框中的建议词也会立即随之发生相应的改变。如图1.3

所示,在搜索框中继续输入“框架”后,下面的下拉列表框的内容马上切换成了与“

AJAX 框架”相关的建议词内容。

图1.2 Google Suggest 效果图1 图1.3 Google Suggest 效果图2 据分析,这些建议词是按照搜索次数由大到小排列的,而每次显示的建议词不会超过10个。当用户单击选择其中一个建议词,或者用键盘上的方向键选择一个建议词并按确认键(Enter 键)后,页面就会跳转而显示相应的搜索结果,效果如图1.4

和图

1.5所示。

图1.4 选择建议词 图1.5 搜索结果 通过上面的演示,读者可以发现,在建议词显示和更新的过程中,整个页面并没有任何刷新的行为发生,这些建议词好像一开始就写在页面中一样,但显然这是不可能的。那么,这些建议词的数据是如何获取,并更新显示在页面上的呢?

(1)当用户输入关键词时,自动触发Google Suggest 的监听程序。

(2)程序获取用户输入的内容,然后以Ajax 的方式,在页面内部制造HTTP 请求,将输入内容

第1章什么是Ajax ·7·

发送给Google的数据服务器。

(3)数据服务器接收到请求后立即按照用户输入的内容进行检索和组织数据,然后返回给驻留在页面内部的Google Suggest程序。

(4)程序接收到数据服务器返回的数据后,立即对数据进行分析和再组织,然后将建议词显示在页面上供用户选择。

在用户输入关键词后极短的时间内,Google Suggest就已经完成了一次与服务器的交互,在用户毫无察觉的情况下,就已经获取了服务器即时返回的数据来供用户进一步操作。整个流程如图1.6所示。

图1.6 Google Suggest序列图

对Google Suggest的介绍就到这里,1.3节将向读者介绍优秀的电子邮件服务系统:Gmail。

1.3 经典案例2:优秀的电子邮件服务系统(Gmail)

1.2节向读者介绍了一个经典的Ajax案例:Google Suggest。本节将会向读者介绍一个更为庞大和复杂的经典Ajax案例:Google公司出品的优秀电子邮件服务系统Gmail。

1.3.1 注册Gmail

注册Gmail和普通的邮箱几乎没有区别,步骤如下:

(1)使用浏览器访问https://www.360docs.net/doc/884028759.html,,进入Gmail的登录界面,如图1.7所示。

(2)单击屏幕右下角的Sign up for Gmail超链接,可以建立新的Gmail账号。注册界面如图1.8所示。

(3)在填写登录名时,可以使用“check availability!”按钮来检测所填写的登录名是否可用,检测结果将无刷新的显示在文本框下面,这也是Ajax技术的典型应用。效果如图1.9所示。

Ajax

从入门到精通

·8·

图1.7 Gmail登录界面

图1.8 Gmail注册界面图1.9 检查登录名是否可用在注册完成后,就可以登录使用Gmail了。

第1章 什么是Ajax

·9·

1.3.2 Gmail

主界面

登录后,Gmail 的主界面如图1.10所示。

图1.10 Gmail 主界面

Gmail 的主界面主要由页面左边的导航区域和右边的工作区域两部分组成。整个界面简洁明快,没有多余的装饰性图片和其他的广告,在提供用户良好的视觉体验的同时,也减少了页面加载所需要的时间。

先看导航栏。Inbox 按钮被一个蓝色的半圆角矩形的色块所包围,从而标明当前所处的位置是Inbox 。值得注意的是,这些导航按钮并没有用到a 标签,而是使用span 标签,其HTML 代码如下所示。

Inbox

Ajax 从入门到精通

·10·

Starred
Chats
Sent Mail
Drafts
All Mail
Spam
Trash

在Ajax 应用程序中,经常需要设置一些按钮供用户操作,而又不需要页面跳转,所以会使用更简单的、没有默认行为和样式的span 标签来替代a 标签。 1.3.3 Inbox (收件箱)工作区域

Inbox (收件箱)的工作区域界面如图1.11所示。

图1.11 Inbox 的工作区域

第1章 什么是Ajax

·11·

1.3.4 Web Clip (网络剪辑)

首先来看第一行内容,这是一个Web Clip ,即网络剪辑,相当于一个RSS 阅读器的功能。Gmail 允许用户保存多个RSS 源的地址到Gmail 中,当用户访问Gmail 时,Gmail 就会自动读取RSS 的内容后显示在页面上,每次只显示一条记录。用户可以单击右边的向前和向后按钮来阅读其他的记录,如图1.12所示。

Gmail 在页面加载时,会读取最新的几条Web Clip 记录,保存在浏览器的缓存中。当用户单击Web Clip 翻页按钮时,如果请求的数据在缓存中存在,则直接读取缓存并将新的记录更新显示在页面上。如果请求的数据在缓存中不存在时,就会发起Ajax 请求到后台的服务器读取新的若干条记录,保存在浏览器缓存中,然后更新页面上的记录。用户感觉页面上好像保存了所有的Web Clip 记录,而实际上是分段读取的。

1.3.5

邮件操作区域

WebClip 下面的部分就是邮件的操作区域。最近收到的邮件会以列表的形式显示在工作区中,如图1.13所示。

图1.13 Gmail 邮件列表

每条邮件记录都由以下

5个部分组成:复选框、星形图标、邮件标题、邮件具体内容片段和邮件接收日期。复选框让用户可以选择一条或者多条邮件记录来进行操作。而星形图标则可以让用户自己来标注邮件的重要性。单击空心的星形图标,图标切换成黄色实心的五角星,这时邮件被标注为重要。单击已经被标注的星形图标,则又切换成普通状态,如图1.14所示。

图1.14 星形标注

当用户切换标注状态以后,Gmail 会立即发送一个Ajax 请求到后台服务器,以保存用户的操作结果。这样,当用户刷新页面,或者退出系统后再重新登录,邮件的标注状态仍然显示为用户操作后的样式。

Gmail 为用户提供了Archive (存档)、Report Spam (报告垃圾邮件)、Delete (删除)3个快捷操作按钮。同时也提供了6个分组选择按钮,分别是:All (选择所有邮件)、None (取消所有选择)、Read (选择所有已读邮件)、Unread (选择所有未读邮件)、Starred

(选择所有被星形标注的邮件)、Unstarred (选择所有未被星形标注的邮件)。除此之外,Gmail 还提供了一个下拉列表框来提供更多的操作选择以及一个刷新按钮,如图1.15所示。

图1.12 Web Clip 翻页按钮

Ajax

从入门到精通

·12·

图1.15 更多操作

1.3.6 操作邮件

当选择一封邮件时,这条记录的背景色会发生变化,从而标识已经被选中,如图1.16所示。

图1.16 选择邮件

单击Delete(删除)按钮,删除邮件,这时Gmail发送一个Ajax请求到后台服务器以删除数据库中相应的记录,同时在页面右上角显示一个表示当前请求状态的进度框。当后台服务器处理完毕后,请求返回,进度框隐藏,在工作区上方添加醒目的文字提示用户邮件删除成功,同时无刷新的更新界面,删除刚才选中的邮件记录,此时整个操作就完成了。效果如图1.17和图1.18所示。

图1.17 显示请求状态

图1.18 删除成功

Gmail所有的操作都是类似的风格,切换界面以及针对邮件的操作,都是用户做出相应操作后,会

第1章什么是Ajax ·13·

显示一个进度框来提示当前操作正在进行,操作完成后进度框消失,并出现醒目的文字提示,接着无刷新的更新界面。这里不再赘述。

Gmail这一模式后来也被广泛地借鉴,特别是进度框的显示和隐藏。因为在Ajax应用程序中,用户的一些操作并没有发生页面跳转,数据交互在页面内部进行,而在交互完成前页面不会有任何变化,一旦请求所用的时间过长,用户可能会误认为操作没有被正常处理转而进行其他的误操作或者直接放弃操作离开页面。所以在请求过程中设置一个进度框来提示用户当前操作正在进行中,就很有必要了。

相信读者此时已经对Ajax应用程序有了直观的认识,Gmail就介绍到这里。更多的细节,读者可以自己去体验,从而更深入地感受Ajax的魅力。

1.4 第一个Ajax应用程序:Hello World!

1.2节和1.3节向读者介绍了两个Ajax应用的经典案例:Google Suggest和Gmail。本节将向读者展示本书第一个Ajax程序实例,正如同很多程序设计教程的实例都从Hello World开始一样,本书的第一个例子名字就叫“Hello World!”。

“Hello World!”的流程很简单,当页面打开时,页面的脚本程序向后台程序发送Ajax请求,从而获得后台程序输出的问候语:Hello World!,然后以对话框的形式显示出来。前台页面HelloWorld.html 代码如下所示。

Hello World

Ajax 从入门到精通 ·14·

后台hello_world.php 代码如下所示。

echo 'Hello World';

?>

在浏览器中访问HelloWorld.html

,运行结果如图1.19所示。

图1.19 Hello World !运行结果

1.5 小 结

本章主要是让读者对Ajax 技术有一个初步的认识。通过1.1节Ajax 概述,读者可以了解到Ajax 技术实际上是由几种成熟的技术所组成的一个综合性的应用,通过XMLHttpRequest 对象来发送异步请求,从而创造了一种新的Web 开发模式。接着向读者介绍了两个经典的Ajax 案例:Google Suggest 和Gmail ,让读者认识了现实中的Ajax 应用程序到底是什么模样,了解了广泛应用的Ajax 程序的一些基本模式。最后一节向读者展示了一个基本的Ajax 应用程序的代码。在第2章中,将会辅以实例着重向读者介绍Ajax 的主要开发语言:JavaScript 。

easyUI教程

jQuery EasyUI 简介 jQuery EasyUI 是一个基于jQuery 的框架,集成了各种用户界面插件。 什么是JQuery EasyUI jQuery EasyUI 框架提供了创建网页所需的一切,帮助您轻松建立站点。 ?easyui 是一个基于jQuery 的框架,集成了各种用户界面插件。 ?easyui 提供建立现代化的具有交互性的javascript 应用的必要的功能。 ?使用easyui,您不需要写太多javascript 代码,一般情况下您只需要使用一些html 标记来定义用户界面。 ?HTML 网页的完整框架。 ?easyui 节省了开发产品的时间和规模。 ?easyui 非常简单,但是功能非常强大。

JQuery EasyUI 下载 您可以从https://www.360docs.net/doc/884028759.html,/download/index.php上下载您需要的jQuery EasyUI 版本。 JQuery EasyUI-创建 CRUD 应用 数据收集并妥善管理数据是网络应用共同的必要。CRUD 允许我们生成页面列表,并编辑数据库记录。本教程将向你演示如何使用jQuery EasyUI 框架实现一个CRUD DataGrid。 我们将使用下面的插件: ?datagrid:向用户展示列表数据。 ?dialog:创建或编辑一条单一的用户信息。 ?form:用于提交表单数据。 ?messager:显示一些操作信息。 步骤1:准备数据库 我们将使用MySql 数据库来存储用户信息。创建数据库和'tbl_user' 表。

步骤2:创建DataGrid 来显示用户信息 创建没有javascript 代码的DataGrid。 我们不需要写任何的javascript 代码,就能向用户显示列表,如下图所示:

《移动Web开发技术基础》教学大纲2015

《移动Web开发技术基础》教学大纲 一、课程名称 移动Web开发技术基础 Foundation of Mobile Web Programming 二、学时与学分 80学时(理论48、实验32)、4学分 三、适用专业 非计算机专业本科生 四、参考教材 1.《JavaScript前端开发实用技术教程》,岳学军,人民邮电出版社,2014. 9 2.(HTML5程序设计》,Peter Lubbers等,人民邮电出版社,2012.5 3.《HTML5与CSS3权威指南(第2版)》,陆凌牛,机械工业出版社,2013.3 五、课程的内容和目的 本课程作为非计算机专业本科通识课程,是一门理论和实践紧密结合的实用课程,内容包括讣算机基础部分和程序设计部分。汁算机基础部分涵盖计算机软硬件组成、数制表示、操作系统、多媒体原理和网络基础知识。程序设计部分为Web开发技术:HTML技术、CSS技术、Javascript语言、AJAX技术、HTML5新技术及HTML5 API。使学生掌握网站询端开发技术和开发移动端单页Web应用的基本原则、方法和步骤,从而使学生具有扎实的Web开发理论基础和较强的实践动手开发能力。本课程的主要目的是使学生了解计算机基础知识、Web开发技术, 具

备HTML5语言的编程能力。 基木要求 1.了解计算机基础知识。 2.了解操作系统的作用及分类 3.了解多媒体基础知识 4.了解网络基础知识,掌握网络基本应用及网络信息的获取方法 5.理解Web工作原理,了解Web技术基础。 6.熟练掌握超文本标记语言HTML文档的结构、常用文档元素的含义和基本 使用方法。 7.理解样式表语言CSS的基本概念和作用,掌握CSS的基本语法和使用方 法。 8.掌握脚本语言JavaScript的基本概念和语法,掌握JavaScript对常用 HTML文档元素的操作方法;了解文档对象模型DOM的基本概念和作用。 9.了解 HTML3 新标签及 HTML5 API 10.了解主要动态网页技术的基本概念。 七、教学大纲 第1章计算机基础知识 授课内容: 1.计算机的发展及应用 2.计算机中的信息表示(二进制、信息单位) 3.数据在计算机中的表示 4.计算机硬件系统 5.计算机软件系统 6.操作系统功能及分类 第2章多媒体技术基础 授课内容:

html5实例教程网盘下载

html5实例教程网盘下载 学习HTML、CSS基础知识,实现PC端静态页面制作(例如京东商城),响应式网页布局的制作(微软中国官网)、及WebApp页面布局(淘宝、美团等)。 html5前端人才已成为IT职场的紧缺型人才,如何自学html5?如何短时间内迅速提升html5开发能力?千锋教育html5实例教程网盘下载(https://www.360docs.net/doc/884028759.html,/video/html5_download.html),助力大家成为企业不可多得的贤才。 实现这些需要的知识有 1、学习HTML基本语法:双标签、单标签语法结构。 2、常用标签:标题标签、段落标签、布局标签、表格、列表、标签标签。 3、学习CSS基本语法:选择器声明。 4、学习CSS的三种样式表:内联、内部、外部 5、学习CSS的各种常用选择器 6、学习CSS的选择器、样式表的优先级和权重问题。 7、学习CSS的核心属性及属性值 8、学习CSS的元素类型的转换

9、学习CSS的定位锚地的应用 10、学习CSS中的图片整合技术的应用 11、学习CSS中常见的浏览器的兼容及解决方法 12、学习HTML5新增元素及属性 13、学习CSS3新增选择器的应用 14、学习CSS3的2D、3D、关键帧动画的相关应用 15、学习CSS3中弹性盒的应用 16、学习CSS3中媒体查询响应式的设计应用 学习JavaScript和jQuery及掌握一门后台程序语言的简单基础和一个数据库,实现PC端项目交互开发(做一个电商类型的网站开发) 需要的知识有 1、学习JavaScript的基本语法 2、学习JavaScript的循环语句 3、学习JavaScript的函数与数组 4、学习JavaScript的String和Data 5、学习JavaScript的BOM与DOM 6、学习JavaScript的相关事件 7、学习JavaScript的拖拽效果 8、学习JavaScript的cookie存储 9、学习JavaScript的正则表达式 10、学习JavaScript的Ajax的应用 11、学习JavaScript的面相对象基础

jQuery调用AJAX异步操作超清晰教程

JQUERY AJAX异步操作详细说明 AJAX 全称 Asynchronous JavaScript and XML(异步的 JavaScript 和XML)。它并非一种新的技术,而是以下几种原有技术的结合体。 1)使用CSS和XHTML来表示。 2)使用DOM模型来交互和动态显示。 3)使用XMLHttpRequest来和服务器进行异步通信。 4)使用javascript来绑定和调用。 通过AJAX异步技术,可以在客户端脚本与web服务器交互数据的过程中使用XMLHttpRequest对象来完成HTTP请求(Request)/应答(Response)模型: 1)不需要用户等待服务端响应。在异步派发XMLHttpRequest请求后控制 权马上就被返回到浏览器。界面不会出现白板,在得到服务器响应之前 还可以友好的给出一个加载提示。 2)不需要重新加载整个页面。为XMLHttpRequest注册一个回调函数,待 服务器响应到达时,触发回调函数,并且传递所需的少量数据。“按需 取数据”也降低了服务器的压力。 3)不需要使用隐藏或内嵌的框架。在XHR对象之前,模拟Ajax通信通常 使用hack手段,如使用隐藏的或内嵌的框架(