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

Ajax教程

Ajax教程
Ajax教程

Ajax笔记

目录

一、Ajax简介 (2)

1.Ajax (2)

2.AJAX 基于Web 标准 (2)

3.AJAX 使用Http 请求 (2)

4.XMLHttpRequest 对象 (2)

二、Ajax浏览器支持 (3)

三、XMLHttpRequest对象 (5)

1.onreadystatechange 属性 (5)

2.readyState 属性 (5)

3.status属性 (6)

4.responseText 属性 (7)

三、AJAX - 向服务器发送一个请求 (8)

1.XMLHttpRequest.open() (8)

2.XMLHttpRequest.send() (8)

四、Ajax实例 (9)

1.练习一 (9)

一、Ajax简介

1.Ajax

AJAX = 异步JavaScript 及XML(Asynchronous JavaScript and XML)

AJAX 不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的Web 应用程序的技术。

通过AJAX,您的JavaScript 可使用JavaScript 的XMLHttpRequest 对象来直接与服务器进行通信。通过这个对象,您的JavaScript 可在不重载页面的情况与Web 服务器交换数据。

AJAX 在浏览器与Web 服务器之间使用异步数据传输(HTTP 请求),这样就可使网页从服务器请求少量的信息,而不是整个页面。

AJAX 可使因特网应用程序更小、更快,更友好。

AJAX 是一种独立于Web 服务器软件的浏览器技术。

2.AJAX 基于Web 标准

AJAX 基于下列Web 标准:

?JavaScript

?XML

?HTML

?CSS

3.AJAX 使用Http 请求

在传统的JavaScript 编程中,假如您希望从服务器上的文件或数据库中得到任何的信息,或者向服务器发送信息的话,就必须利用一个HTML 表单向服务器GET 或POST 数据。而用户则需要单击“提交”按钮来发送/获取信息,等待服务器的响应,然后一张新的页面会加载结果。

由于每当用户提交输入后服务器都会返回一张新的页面,传统的web 应用程序变得运行缓慢,且越来越不友好。

通过利用AJAX,您的JavaScript 会通过JavaScript 的XMLHttpRequest对象,直接与服务器来通信。

通过使用HTTP 请求,web 页可向服务器进行请求,并得到来自服务器的响应,而不加载页面。用户可以停留在同一个页面,他或她不会注意到脚本在后台请求过页面,或向服务器发送过数据。

4.XMLHttpRequest 对象

通过使用XMLHttpRequest 对象,web 开发者可以做到在页面已加载后从服务器更新页面!

在2005 年AJAX 被Google 推广开来(Google Suggest)。

Google 建议使用XMLHttpRequest 对象来创建一种动态性极强的web 界面:当您开始在Google 的搜索框中输入查询时,JavaScript 会向某个服务器发出这些字词,然后服务器会返回一系列的搜索建议。

二、Ajax浏览器支持

不同的浏览器创建XMLHttpRequest 对象的方法是有差异的。

IE 浏览器使用ActiveXObject,而其他的浏览器使用名为XMLHttpRequest的JavaScript 内建对象。

2. onreadystatechange也需要不同浏览器的支持

它并不按常规的语法(在onreadystatechange事件中)来实现同步,而在在调用完send方法后,就可以直接用xmlHttpRequest.responseText获取数据。

在ajax的XMLHttpRequest.onreadystatechange方法的差异:

在Firefox中当状态为1(即XMLHttpRequest已经调用open但还没有调用send时),Firefox则会继续执行onreadystatechange后面的代码,到执行完后面的代码后,在执行onreadystatechange在状态2,3,4的代码,而IE会等待状态2的到了,执行完onreadystatechange中状态2,3,4的代码后,继续执行后面的代码,这样问题就出现了,经常我们在onreadystatechange的代码要处理从服务器上获得的数据(这个数据只有在onreadystatechange的状态为4时,才可以得到),所以这在IE中不存在问题,因为它会等待

onreadystatechange状态4到来以后,在执行onreadystatechange后面的数据,但是由于Firefox不会等到onreadystatechange状态4到来后在执行onreadystatechange后面的代码,所以后面的代码就不能处理从服务器上获得的数据。

3.判断是什么浏览器

function getOs()

{

var OsObject = "";

if(https://www.wendangku.net/doc/f92162149.html,erAgent.indexOf("MSIE")>0) {

return "MSIE"; //IE浏览器

}

if(isFirefox=https://www.wendangku.net/doc/f92162149.html,erAgent.indexOf("Firefox")>0){

return "Firefox"; //Firefox浏览器

}

if(isSafari=https://www.wendangku.net/doc/f92162149.html,erAgent.indexOf("Safari")>0) {

return "Safari"; //Safan浏览器

}

if(isCamino=https://www.wendangku.net/doc/f92162149.html,erAgent.indexOf("Camino")>0){

return "Camino"; //Camino浏览器

}

if(isMozilla=https://www.wendangku.net/doc/f92162149.html,erAgent.indexOf("Gecko/")>0){

return "Gecko"; //Gecko浏览器

}

}

其实在实际也没必要这样判断,因为不同浏览器之间只是他们的内核不同而已,而现在主要的有两种内核,一种是IE内核,另一种是Firefox内核;比如:Safan,Camino他们的内核和Firefox内核是一样的;360浏览器就是基于IE内核的。所以在判断是只要判断是否是ie就行了,其他都做一样的处理。

三、XMLHttpRequest对象

1.onreadystatechange 属性

onreadystatechange 属性存有处理服务器响应的函数。

xmlHttp.onreadystatechange=function()

{

// 我们需要在这里写一些代码

}

2.readyState 属性

readyState 属性存有服务器响应的状态信息。每当readyState 改变时,onreadystatechange 函数就会被执行。

我们要向这个onreadystatechange 函数添加一条If 语句,来测试我们的响应是否已完成(意味着可获得数据):

xmlHttp.onreadystatechange=function()

{

if(xmlHttp.readyState==4)//表示请求完成

{

// 从服务器的response获得数据

}

}

3.status属性

Number Description

100 Continue

101 Switching protocols

200 OK (发送成功)

201 Created

202 Accepted (公认的)

203 Non-Authoritative Information 204 No Content

205 Reset Content

206 Partial Content

300 Multiple Choices(权限)301 Moved Permanently

302 Found

303 See Other

304 Not Modified

305 Use Proxy

307 Temporary Redirect

400 Bad Request (重定向)401 Unauthorized

402 Payment Required

403 Forbidden

404 Not Found

405 Method Not Allowed

406 Not Acceptable

407 Proxy Authentication Required

408 Request Timeout

409 Conflict

410 Gone

411 Length Required

412 Precondition Failed

413 Request Entity Too Large

414 Request-URI Too Long

415 Unsupported Media Type

416 Requested Range Not Suitable

417 Expectation Failed

500 Internal Server Error

501 Not Implemented

502 Bad Gateway

503 Service Unavailable

504 Gateway Timeout

505 HTTP Version Not Supported

if(xmlHttp.readyState==4)//表示请求完成

{

// 从服务器的response获得数据

If(xmlHttp.status==200)

{

//可要可不要,等于200表示发送成功

}

}

4.responseText 属性

可以通过responseText 属性来取回由服务器返回的数据。

在我们的代码中,我们将把时间文本框的值设置为等于responseText:xmlHttp.onreadystatechange=function()

{

if(xmlHttp.readyState==4)

{

document.myForm.time.value=xmlHttp.responseText;

}

}

四、AJAX向服务器发送一个请求

要想把请求发送到服务器,我们就需要使用open() 方法和send() 方法。

1.XMLHttpRequest.open()

初始化HTTP 请求参数

语法

open(method, url, async, username, password)

method 参数是用于请求的HTTP 方法。值包括GET、POST 和HEAD。

url 参数是请求的主体。大多数浏览器实施了一个同源安全策略,并且要求这个URL 与包含脚本的文本具有相同的主机名和端口。

async 参数指示请求使用应该异步地执行。如果这个参数是false,请求是同步的,后续对send() 的调用将阻塞,直到响应完全接收。如果这个参数是true 或省略,请求是异步的,且通常需要一个onreadystatechange 事件句柄。

username 和password 参数是可选的,为url 所需的授权提供认证资格。如果指定了,它们会覆盖url 自己指定的任何资格。

2.XMLHttpRequest.send()

发送一个HTTP 请求

语法

send(body)

如果通过调用open() 指定的HTTP 方法是POST 或PUT,body 参数指定了请求体,作为一个字符串或者Document 对象。如果请求体不适必须的话,这个参数就为null。对于任何其他方法,这个参数是不可用的,应该为null(有些实现不允许省略该参数)。

说明

这个方法导致一个HTTP 请求发送。如果之前没有调用open(),或者更具体地说,如果readyState 不是1,send() 抛出一个异常。否则,它发送一个HTTP 请求,该请求由以下几部分组成:

?之前调用open() 时指定的HTTP 方法、URL 以及认证资格(如果有的话)。

?之前调用setRequestHeader() 时指定的请求头部(如果有的话)。

?传递给这个方法的body参数。

一旦请求发布了,send() 把readyState 设置为2,并触发onreadystatechange 事件句柄。

如果之前调用的open() 参数async 为false,这个方法会阻塞并不会返回,直到readyState 为4 并且服务器的响应被完全接收。否则,如果async 参数为true,或者这个参数省略了,send() 立即返回,并且正如后面所介绍的,服务器响应将在一个后台线程中处理。

如果服务器响应带有一个HTTP 重定向,send() 方法或后台线程自动遵从重定向。当所有的HTTP 响应头部已经接收,send() 或后台线程把readyState 设置为3 并触发onreadystatechange 事件句柄。如果响应较长,send() 或后台线程可能在状态3 中触发onreadystatechange 事件句柄:这可以作为一个下载进度指示器。最后,当响应完成,send() 或后台线程把readyState 设置为4,并最后一次触发事件句柄。

例:如果我们假设HTML 文件和动态文件(https://www.wendangku.net/doc/f92162149.html,,PHP等)文件位于相同的目录,那么代码是这样的:xmlHttp.open("GET","time.asp",true);

xmlHttp.send(null);//null表示清空

注:xmlhttp.open("POST", "AJAX1.ashx?&id=2&Chana=" + encodeURI("中国"), false);

//向AJAX1.ashx请求还可以在他后面加参数;

//注意的是:如果参数是中文要用encodeURL括起来,不然会出乱码。

//XMLHTTP默认不是同步请求的,也就是open方法并不像webclick的DownloadString那样把服务器返回的数据拿到才返回,是异步的,因此需要监听onreadystatechange事件。

四、Ajax实例

1.练习一

客户端:

用户:

时间:

服务端:

public void ProcessRequest(HttpContext context)

{

context.Response.ContentType = "text/plain";

DateTime dt = DateTime.Now;

context.Response.Write(dt);

}

练习二:Jquery版本Ajax

首先要引入jquery文件

//在jquery中直接调用post即可用ajax了

function btnJquery() {

$.post("AJAX1.ashx", function (data, issuccess) {

//第一个参数返回请求页面(AJAX1.ashx)的值,第二个返回是否他的状态(如果成功了则返回success,否则返回失败)

alert(data);

alert(issuccess);

});

}

更详细例子《Ajax入门之ajax练习》

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/f92162149.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/f92162149.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手段,如使用隐藏的或内嵌的框架(