文档库 最新最全的文档下载
当前位置:文档库 › ajax教程

ajax教程

ajax教程
ajax教程

Ajax教程

作者:金云龙。如要转发,请注明出处:https://www.wendangku.net/doc/e913037580.html,

1.同步交互和异步交互

●同步交互

?客户端向服务器端发送请求——> 等待服务器端处理——> 处理完毕返回,这个期间客户端不能做任

何其他事情。

?发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式。

?举例:文件上传

●异步交互

?客户端向服务器端发送请求——> 等待服务器端处理——> 处理完毕返回,这个期间客户端可以做其

他事情。

?发送方发出数据后,不等接收方发回响应,接着发送下个数据包的通讯方式。

?举例:文件上传

2.Ajax的定义

●Ajax被认为是(Asynchronous JavaScript and XML的缩写)。

●允许浏览器与服务器通信而无须刷新当前页面的技术都被叫做Ajax。

3.Ajax现今经典案例

●AJAX案例之google suggest

●AJAX案例之Google Maps

4.Ajax模型与传统web模型的区别

●Ajax模型

●传统web模型

5.实现异步交互的技术

●Flash

●Java applet

●框架:如果使用一组框架构造了一个网页,可以只更新其中一个框架,而不必惊动整个页面

●隐藏的iframe

●XMLHttpRequest:该对象是对JavaScript 的一个扩展,可使网页与服务器进行通信。是创建Ajax 应用的

最佳选择。实际上通常把Ajax 当成XMLHttpRequest 对象的代名词。

6.Ajax的工作原理

●Ajax的核心是JavaScript对象XmlHttpRequest。

●XmlHttpRequest使您可以使用JavaScript向服务器提出请求并处理响应,而不阻塞用户。

●用户的浏览器在执行任务时即装载了AJAX引擎。AJAX引擎用JavaScript语言编写,通常藏在一个隐藏的框

架中。它负责编译用户界面及与服务器之间的交互。

●AJAX引擎允许用户与应用软件之间的交互过程异步进行,独立于用户与网络服务器间的交流。现在,可以

用Javascript调用AJAX引擎来代替产生一个HTTP的用户动作,内存中的数据编辑、页面导航、数据校验这些不需要重新载入整个页面的需求可以交给AJAX来执行。

7.Ajax包含的技术

AJAX:(Asynchronous JavaScript and XML)并不是一项新技术,其实是多种技术的综合,包括Javascript、XHTML和CSS、DOM、XML和XMLHttpRequest。

●服务器端语言:服务器需要具备向浏览器发送特定信息的能力。Ajax与服务器端语言无关。

●XML (eXtensible Markup Language,可扩展标记语言) 是一种描述数据的格式。AJAX 程序需要某种格式化的

格式来在服务器和客户端之间传递信息,XML 是其中的一种选择。

●XHTML(eXtended Hypertext Markup Language,使用扩展超媒体标记语言)和CSS(Cascading Style Sheet,级

联样式单)标准化呈现。

●DOM(Document Object Model,文档对象模型)实现动态显示和交互。

●使用XMLHTTP组件XMLHttpRequest对象进行异步数据读取。

●使用JavaScript绑定和处理所有数据。

8.Ajax的优点与缺点

●优点:

?最大的一点是页面无刷新,在页面内与服务器通信,给用户的体验非常好。

?使用异步方式与服务器通信,不需要打断用户的操作,具有更加迅速的响应能力。

?可以把以前一些服务器负担的工作转嫁到客户端,利用客户端闲置的能力来处理,减轻服务器和带宽的

负担,节约空间和宽带租用成本。并且减轻服务器的负担,ajax的原则是“按需取数据”,可以最大程度

的减少冗余请求,和响应对服务器造成的负担。

?基于标准化的并被广泛支持的技术,不需要下载插件或者小程序。

●缺点:

?AJAX大量使用了Javascript和AJAX引擎,而这个取决于浏览器的支持。IE5.0及以上、Mozilla1.0、

NetScape7及以上版本才支持,Mozilla虽然也支持AJAX,但是提供XMLHttpRequest的方式不一样。所

以,使用AJAX的程序必须测试针对各个浏览器的兼容性。

?AJAX更新页面内容的时候并没有刷新整个页面,因此,网页的后退功能是失效的;有的用户还经常搞

不清楚现在的数据是旧的还是已经更新过的。这个就需要在明显位置提醒用户“数据已更新”。

?对流媒体的支持没有FLASH、Java Applet好。

?对搜索引擎的支持比较弱。

?一些手持设备(如手机、PDA等)现在还不能很好的支持Ajax。

9.XMLHttpRequest对象

XMLHttpRequest是XMLHTTP组件的对象,通过这个对象,AJAX可以像桌面应用程序一样只同服务器进行数据层面的交换,而不用每次都刷新界面,也不用每次将数据处理的工作都交给服务器来做;这样既减轻了服务器负担又加快了响应速度、缩短了用户等待的时间。

●XMLHttpRequest最早是在IE5中以ActiveX组件的形式实现的。非W3C标准!

●由于非标准所以实现方法不统一

?Internet Explorer把XMLHttpRequest实现为一个ActiveX对象。

?其他浏览器(Firefox、Safari、Opera…)把它实现为一个本地的JavaScript对象。

?XMLHttpRequest在不同浏览器上的实现是兼容的,所以可以用同样的方式访问XMLHttpRequest实例的

属性和方法,而不论这个实例创建的方法是什么。

●创建XMLHttpRequest对象

●XMLHttpRequest对象的属性

10.Ajax的实现步骤

10.1.创建XMLHttpRequest对象

参看上面的示例!

10.2.服务器端向客户端响应(注册监听)

●XMLHttpRequest对象的onreadystatechange属性

?该事件处理函数由服务器触发,而不是用户。

?在Ajax 执行过程中,服务器会通知客户端当前的通信状态。这依靠更新XMLHttpRequest 对象的

readyState 来实现。改变readyState 属性是服务器对客户端连接操作的一种方式。

?每次readyState 属性的改变都会触发readystatechange事件。

●XMLHttpRequest对象的readyState 属性

?readyState 属性表示Ajax请求的当前状态。

?它的值用数字代表。

◆0 代表未初始化。还没有调用open 方法

◆ 1 代表正在加载。open 方法已被调用,但send 方法还没有被调用

◆ 2 代表已加载完毕。send 已被调用。请求已经开始

◆ 3 代表交互中。服务器正在发送响应

◆ 4 代表完成。响应发送完毕

?每次readyState 值的改变,都会触发readystatechange 事件。如果把onreadystatechange 事件处理函数

赋给一个函数,那么每次readyState 值的改变都会引发该函数的执行。

?readyState 值的变化会因浏览器的不同而有所差异。但是,当请求结束的时候,每个浏览器都会把

readyState 的值统一设为4。

●XMLHttpRequest对象的status属性

?服务器发送的每一个响应也都带有首部信息。三位数的状态码是服务器发送的响应中最重要的首部信息,

并且属于超文本传输协议中的一部分。

?常用状态码及其含义:

◆404 没找到页面(not found)

◆403 禁止访问(forbidden)

◆500 内部服务器出错(internal service error)

◆200 一切正常(ok)

◆304 没有被修改(not modified)(服务器返回304状态,表示源文件没有被修改)

?在XMLHttpRequest 对象中,服务器发送的状态码都保存在status 属性里。通过把这个值和200 或304

比较,可以确保服务器是否已发送了一个成功的响应。

10.3.建立客户端与服务器端的通信连接

●XMLHttpRequest对象的open ( method, url, asynch ) 方法

?XMLHttpRequest 对象的open 方法允许程序员用一个Ajax调用向服务器发送请求。

?method:请求类型,类似“GET”或”POST”的字符串。若只想从服务器检索一个文件,而不需要发送任何

数据,使用GET(可以在GET请求里通过附加在URL上的查询字符串来发送数据,不过数据大小限制为

2000个字符)。若需要向服务器发送数据,用POST。

?url:路径字符串,指向你所请求的服务器上的那个文件。可以是绝对路径或相对路径。

?asynch:表示请求是否要异步传输,默认值为true(异步)。指定true,在读取后面的脚本之前,不需要等

待服务器的相应。指定false,当脚本处理过程经过这点时,会停下来,一直等到Ajax请求执行完毕再继

续执行。

●如果请求方式是”POST”方式的话,需要再open ( ) 方法后,调用setRequestHeader(header,value)方法

?当浏览器向服务器请求页面时,它会伴随这个请求发送一组首部信息。这些首部信息是一系列描述请求

的元数据(metadata)。首部信息用来声明一个请求是GET 还是POST。

?Ajax 请求中,发送首部信息的工作可以由setRequestHeader完成。

?参数header:首部的名字; 参数value:首部的值。

?如果用POST 请求向服务器发送数据,需要将“Content-type”的首部设置为

“application/x-www-form-urlencoded”.它会告知服务器正在发送数据,并且数据已经符合URL编码了。

?该方法必须在open()之后才能调用。

10.4.客户端向服务器端发送请求

●XMLHttpRequest对象的send (data ) 方法

?如果请求方式是”GET”方式的话,send ( ) 方法发送请求数据,服务器端接受不到参数。

?如果请求方式是”POST”方式的话,send ( ) 方法发送请求数据,服务器端可以接受参数。

10.5.GET请求方式的Ajax应用

10.6.POST请求方式的Ajax应用

11.Ajax的数据格式

11.1.HTML

●XMLHttpRequest对象的responseText属性

?responseText 属性包含了从服务器发送的数据。它是一个HTML,XML或普通文本,这取决于服务器发送

的内容。

?当readyState 属性值变成4 时, responseText 属性才可用,表明Ajax 请求已经结束。

●优点:

?从服务器端发送的HTML 代码在浏览器端不需要用JavaScript 进行解析。

?HTML 的可读性好。

?HTML 代码块与innerHTML 属性搭配,效率高。

●缺点:

?若需要通过AJAX 更新一篇文档的多个部分,HTML 不合适(拆串)。

?innerHTML 并非DOM 标准。

11.2.XML

●XMLHttpRequest对象的responseXML属性

?只用服务器发送了带有正确首部信息的数据时,responseXML 属性才是可用的。MIME 类型必须为

text/xml。

●优点:

?XML 是一种通用的数据格式。

?不必把数据强加到已定义好的格式中,而是要为数据自定义合适的标记。

?利用DOM 可以完全掌控文档。

●缺点:

?如果文档来自于服务器,就必须得保证文档含有正确的首部信息。若文档类型不正确,那么responseXML

的值将是空的。

?当浏览器接收到长的XML 文件后,DOM 解析可能会很复杂。

11.3.JSON

●JSON数据格式

?JSON(JavaScript Object Notation)一种简单的数据格式,比xml更轻巧。JSON是JavaScript原生格式,

这意味着在JavaScript中处理JSON数据不需要任何特殊的API或工具包。

?JSON的规则很简单:对象是一个无序的“…名称/值?对”集合。一个对象以“{”(左括号)开始,“}”(右括

号)结束。每个“名称”后跟一个“:”(冒号);“…名称/值?对”之间使用“,”(逗号)分隔。

?规则如下:

1.映射用冒号(“:”)表示。名称:值。

2.并列的数据之间用逗号(“,”)分隔。

3.映射的集合(对象)用大括号(“{}”)表示。

4.并列数据的集合(数组)用方括号(“[]”)表示。

5.元素值可具有的类型:string, number, object, array, true, false, null。

●解析JSON

?JSON 只是一种文本字符串。它被存储在responseText 属性中

?为了读取存储在responseText 属性中的JSON 数据,需要根据JavaScript 的eval 语句。

?函数eval 会把一个字符串当作它的参数。然后这个字符串会被当作JavaScript 代码来执行。因为JSON

的字符串就是由JavaScript 代码构成的,所以它本身是可执行的。

12.json-lib

●JSON-lib 是一个java类库

?转换javabeans, maps, collections, java arrays 和XML 成为json 格式数据

?转换json格式数据成为javabeans 对象

●需要jar包

?jakarta commons-lang 2.5

?jakarta commons-beanutils 1.8.0

?jakarta commons-collections 3.2.1

?jakarta commons-logging 1.1.1 ?ezmorph 1.0.6

/**

* XML-->JSON串

*/

System.out.println("------------XML-->JSON串----------"); String xml3 = "" + "\n" +

"\n" +

"return matrix[i][j];\n" +"\n" + ""; JSONArray json5 = (JSONArray) new XMLSerializer().read(xml); System.out.println(json5);

PHP+AJAX教程(5)-AJAX MySQL数据库实例

PHP+AJAX教程(5):AJAX MySQL数据库实例 AJAX 可用来与数据库进行交互式通信。 AJAX 数据库实例 在下面的AJAX 实例中,我们将演示网页如何使用AJAX 技术从MySQL 数据库中读取信息。 在下拉列表中选择一个名字(测试说明:该实例功能未实现) 在此列出用户信息。 此列由四个元素组成: MySQL 数据库 简单的HTML 表单 JavaScript PHP 页面 数据库 将在本例中使用的数据库看起来类似这样: id FirstName LastName Age Hometown Job 1 Peter Griffin 41 Quahog Brewery 2 Lois Griffin 40 Newport Piano Teacher 3 Joseph Swanson 39 Quahog Police Officer 4 Glenn Quagmire 41

Quahog Pilot HTML 表单 上面的例子包含了一个简单的HTML 表单,以及指向JavaScript 的链接: <html><head><script src="selectuser.js"></script></head><body><form> Select a User:<select name="users" onchange="showUser(this.value)"><option value="1">Peter Griffin</option><option value="2">Lois Griffin</option><option value="3">Glenn Quagmire</option><option value="4">Joseph Swanson</option></select></form><p><div id="txtHint"><b>User info will be listed here.</b></div></p></body></html> 例子解释- HTML 表单 正如您看到的,它仅仅是一个简单的HTML 表单,其中带有名为"users" 的下拉列表,okooo澳客网这个列表包含了姓名,以及与数据库的"id" 对应的选项值。 表单下面的段落包含了名为"txtHint" 的div。这个div 用作从web 服务器检索到的信息的占位符。 当用户选择数据时,执行名为"showUser()" 的函数。该函数的执行由"onchange" 事件触发。 换句话说:每当用户改变下拉列表中的值,就会调用showUser() 函数。 JavaScript 这是存储在"selectuser.js" 文件中的JavaScript 代码: var xmlHttpfunction showUser(str){ xmlHttp=GetXmlHttpObject()if (xmlHttp==null){alert ("Browser does not support HTTP Request")return}var url="getuser.php"url=url+"?q="+strurl=url+"&sid="+Mat h.random()xmlHttp.onreadystatechange=stateChanged xmlHttp.open("GET",url,true)xmlHttp.send(null)}function stateChanged() { if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){ document.getElementById("txtHint").i nnerHTML=xmlHttp.responseText } }function GetXmlHttpObject(){var xmlHttp=null;try{// Firefox, Opera 8.0+, SafarixmlHttp=new XMLHttpRequest();}catch (e){//Internet Explorertry { xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); }catch (e) { xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); }}return xmlHttp;} 例子解释: stateChanged() 和GetXmlHttpObject 函数与PHP AJAX 请求那一节中的相同,您可以参阅其中的相关解释。 showUser() 函数 假如下拉列表中的项目被选择,函数执行: 调用GetXmlHttpObject 函数来创建XMLHTTP 对象定义发送到服务器的URL(文件名)向URL 添加带有下拉列表内容的参数(q) 添加一个随机数,以防服务器使用缓存的文件当触发事件时调用stateChanged 通过给定的URL 打开XMLHTTP 对象向服务器发送HTTP

easyUI教程

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

JQuery EasyUI 下载 您可以从https://www.wendangku.net/doc/e913037580.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.wendangku.net/doc/e913037580.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手段,如使用隐藏的或内嵌的框架(