《2022年ajax新手入门教程-适合初学者 .pdf》由会员分享,可在线阅读,更多相关《2022年ajax新手入门教程-适合初学者 .pdf(7页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、初学者入门教程,来源于网络AJAX 简介AJAX 全称为 “ Asynchronous JavaScript and XML ” (异步 JavaScript 和 XML ) ,是一种创建交互式网页应用的网页开发技术。类似于 DHTML或 LAMP ,AJAX 不是指一种单一的技术,而是有机地利用了一系列相关的技术。AJAX 不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的Web 应用程序的技术。通过AJAX ,您的JavaScript 可使用JavaScript 的 XMLHttpRequest 对象来直接与服务器进行通信。通过这个对象, 您的JavaScript 可在不重载页
2、面的情况与Web 服务器交换数据。AJAX 在浏览器与Web 服务器之间使用异步数据传输(HTTP 请求) ,这样就可使网页从服务器请求少量的信息,而不是整个页面。AJAX 可使因特网应用程序更小、更快,更友好。AJAX 是一种独立于Web 服务器软件的浏览器技术。AJAX 基于下列Web 标准:JavaScript XML HTML CSS 在 AJAX 中使用的Web 标准已被良好定义,并被所有的主流浏览器支持。AJAX 应用程序独立于浏览器和平台。1. AJAX 使用 Http 请求在传统的JavaScript 编程中,假如您希望从服务器上的文件或数据库中得到任何的信息,或者向服务器发送
3、信息的话,就必须利用一个HTML 表单向服务器GET 或 POST 数据。而用户则需要单击“ 提交 ” 按钮来发送 /获取信息,等待服务器的响应,然后一张新的页面会加载结果。由于每当用户提交输入后服务器都会返回一张新的页面,传统的web 应用程序变得运行缓慢,且越来越不友好。通过利用AJAX ,您的 JavaScript 会通过JavaScript 的 XMLHttpRequest 对象,直接与服务器来通信。通过使用HTTP 请求, web 页可向服务器进行请求,并得到来自服务器的响应,而不加载页面。 用户可以停留在同一个页面,他或她不会注意到脚本在后台请求过页面,或向服务器发送过数据。XML
4、HttpRequest 对象 :通过使用XMLHttpRequest 对象, web 开发者可以做到在页面已加载后从服务器更新页面!您的第一个AJAX 应用程序:为了让您理解AJAX 的工作原理,我们将创建一个小名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 7 页 - - - - - - - - - 型的AJAX 应用程序。首先,我们需要一个带有两个文本框的HTML 表单:用户名和时间。用户名文本框由用户填写,而时间文本框使用AJAX 进行填写。此 HTML 文件名为t
5、estAjax.htm(请注意这个HTML 表单没有提交按钮!):2. AJAX - 浏览器支持AJAX 的要点是XMLHttpRequest 对象。不同的浏览器创建XMLHttpRequest 对象的方 法 是 有 差 异 的 。 IE 浏 览 器 使 用 ActiveXObject , 而 其 他 的 浏 览 器 使 用 名为 XMLHttpRequest 的 JavaScript 内建对象。 如需针对不同的浏览器来创建此对象,我们要使用一条try and catch 语句。您可以在我们的JavaScript 教程中阅读更多有关 try 和catch 语句 的内容。让 我 们 用 这 段
6、创 建XMLHttpRequest 对 象 的JavaScript 来 更 新 一 下 我 们 的testAjax.htm 文件: function ajaxFunction() var xmlHttp; try xmlHttp=new XMLHttpRequest(); catch (e) try xmlHttp=new ActiveXObject(Msxml2.XMLHTTP);名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 7 页 - - - - - - - - -
7、 catch (e) try xmlHttp=new ActiveXObject(Microsoft.XMLHTTP); catch (e) alert(您的浏览器不支持AJAX!); return false; 用户 : 时间 : 例子解释:首先声明一个保存XMLHttpRequest 对象的xmlHttp 变量。然后使用XMLHttp=new XMLHttpRequest() 来创建此对象。这条语句针对Firefox、Opera 以及Safari 浏览器。假如失败,则尝试针对Internet Explorer 6.0+ 的 xmlHttp=new ActiveXObject(Msxml2.
8、XMLHTTP),假如也不成功,则尝试针对Internet Explorer 5.5+ 的 xmlHttp=new ActiveXObject(Microsoft.XMLHTTP)。假如这三种方法都不起作用,那么这个用户所使用的浏览器已经太过时了,他或她会看到一个声明此浏览器不支持AJAX 的提示。注释: 上面这些浏览器定制的代码很长,也很复杂。不过,每当您希望创建名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 7 页 - - - - - - - - - XMLHttpR
9、equest 对象时,这些代码就能派上用场,因此您可以在任何需要使用的时间拷贝粘贴这些代码。上面这些代码兼容所有的主流浏览器:Internet Explorer、Opera 、Firefox 以及Safari 。3. AJAX - XMLHttpRequest 对象在向服务器发送数据之前,我们有必要解释一下XMLHttpRequest 对象的三个重要的属性。onreadystatechange 属性onreadystatechange 属性存有处理服务器响应的函数。下面的代码定义一个空的函数,可同时对onreadystatechange 属性进行设置:xmlHttp.onreadystatec
10、hange=function() / 我们需要在这里写一些代码 readyState 属性readyState 属 性 存 有 服 务 器 响 应 的 状 态 信 息 。 每 当readyState 改 变 时 ,onreadystatechange 函数就会被执行。这是readyState 属性可能的值:状态描述0请求未初始化(在调用open() 之前)1请求已提出(调用send() 之前)2请求已发送(这里通常可以从响应得到内容头部)3请求处理中(响应中通常有部分数据可用,但是服务器还没有完成响应)4请求已完成(可以访问服务器响应并使用它)我们要向这个onreadystatechange
11、函数添加一条If 语句,来测试我们的响应是否已完成(意味着可获得数据):xmlHttp.onreadystatechange=function() 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 7 页 - - - - - - - - - XMLHttpRequest 对象时,这些代码就能派上用场,因此您可以在任何需要使用的时间拷贝粘贴这些代码。上面这些代码兼容所有的主流浏览器:Internet Explorer、Opera 、Firefox 以及Safari 。3. A
12、JAX - XMLHttpRequest 对象在向服务器发送数据之前,我们有必要解释一下XMLHttpRequest 对象的三个重要的属性。onreadystatechange 属性onreadystatechange 属性存有处理服务器响应的函数。下面的代码定义一个空的函数,可同时对onreadystatechange 属性进行设置:xmlHttp.onreadystatechange=function() / 我们需要在这里写一些代码 readyState 属性readyState 属 性 存 有 服 务 器 响 应 的 状 态 信 息 。 每 当readyState 改 变 时 ,onr
13、eadystatechange 函数就会被执行。这是readyState 属性可能的值:状态描述0请求未初始化(在调用open() 之前)1请求已提出(调用send() 之前)2请求已发送(这里通常可以从响应得到内容头部)3请求处理中(响应中通常有部分数据可用,但是服务器还没有完成响应)4请求已完成(可以访问服务器响应并使用它)我们要向这个onreadystatechange 函数添加一条If 语句,来测试我们的响应是否已完成(意味着可获得数据):xmlHttp.onreadystatechange=function() 名师资料总结 - - -精品资料欢迎下载 - - - - - - - -
14、 - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 7 页 - - - - - - - - - 发出Ajax 请求function callServer() / Get the city and state from the web form var city = document.getElementById(city).value; var state = document.getElementById(state).value; / Only go on if there are values for both fields if (cit
15、y = null) | (city = ) return; if (state = null) | (state = ) return; / Build the URL to connect to var url = /scripts/getZipCode.php?city= + escape(city) + &state= + escape(state); / Open a connection to the server xmlHttp.open(GET, url, true); / Setup a function for the server to run when its done
16、xmlHttp.onreadystatechange = updatePage; / Send the request xmlHttp.send(null); 其中大部分代码意义都很明确。开始的代码使用基本JavaScript 代码获取几个表单字段的值。然后设置一个PHP 脚本作为链接的目标。要注意脚本URL 的指定方式, city 和state(来自表单)使用简单的GET 参数附加在URL 之后。然后打开一个连接,这是您第一次看到使用XMLHttpRequest 。其中指定了连接方法(GET )和要连接的URL 。最后一个参数如果设为true,那么将请求一个异步连接(这就是 Ajax 的由来
17、)。如果使用false,那么代码发出请求后将等待服务器返回的响应。如果设为 true,当服务器在后台处理请求的时候用户仍然可以使用表单(甚至调用其他JavaScript 方法) 。xmlHttp (要记住,这是XMLHttpRequest 对象实例)的onreadystatechange 属性可以告诉服务器在运行完成后(可能要用五分钟或者五个小时)做什么。因为代码没有等待服务器, 必须让服务器知道怎么做以便您能作出响应。在这个示例中, 如果服务器处理完了请求,一个特殊的名为updatePage() 的方法将被触发。最后,使用值null 调用send()。因为已经在请求URL 中添加了要发送给服
18、务器的数名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 7 页 - - - - - - - - - 据( city 和 state) ,所以请求中不需要发送任何数据。这样就发出了请求,服务器按照您的要求工作。处理响应现在要面对服务器的响应了。现在只要知道两点:什么也不要做,直到xmlHttp.readyState 属性的值等于4。服务器将把响应填充到xmlHttp.responseText 属性中。如:function updatePage() if (xmlHttp.r
19、eadyState = 4) var response = xmlHttp.responseText; document.getElementById(zipCode).value = response; 它等待服务器调用,如果是就绪状态,则使用服务器返回的值(这里是用户输入的城市和州的 ZIP 编码)设置另一个表单字段的值。连接 Web 表单一个JavaScript 方法捕捉用户输入表单的信息并将其发送到服务器,另一个JavaScript 方法监听和处理响应,并在响应返回时设置字段的值。所有这些实际上都依赖于调用第一个JavaScript 方法,它启动了整个过程。最明显的办法是在HTML 表单中增加一个按钮,但这是2001 年的办法,您不这样认为吗?还是像下面这样利用JavaScript 技术吧。 City: State: Zip Code: 如果感觉这像是一段相当普通的代码,那就对了,正是如此!当用户在city 或 state 字段中输入新的值时,callServer() 方法就被触发,于是Ajax 开始运行了。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 7 页 - - - - - - - - -