Ajax原理详解Word文件下载.docx

上传人:b****2 文档编号:5828702 上传时间:2023-05-05 格式:DOCX 页数:34 大小:32.99KB
下载 相关 举报
Ajax原理详解Word文件下载.docx_第1页
第1页 / 共34页
Ajax原理详解Word文件下载.docx_第2页
第2页 / 共34页
Ajax原理详解Word文件下载.docx_第3页
第3页 / 共34页
Ajax原理详解Word文件下载.docx_第4页
第4页 / 共34页
Ajax原理详解Word文件下载.docx_第5页
第5页 / 共34页
Ajax原理详解Word文件下载.docx_第6页
第6页 / 共34页
Ajax原理详解Word文件下载.docx_第7页
第7页 / 共34页
Ajax原理详解Word文件下载.docx_第8页
第8页 / 共34页
Ajax原理详解Word文件下载.docx_第9页
第9页 / 共34页
Ajax原理详解Word文件下载.docx_第10页
第10页 / 共34页
Ajax原理详解Word文件下载.docx_第11页
第11页 / 共34页
Ajax原理详解Word文件下载.docx_第12页
第12页 / 共34页
Ajax原理详解Word文件下载.docx_第13页
第13页 / 共34页
Ajax原理详解Word文件下载.docx_第14页
第14页 / 共34页
Ajax原理详解Word文件下载.docx_第15页
第15页 / 共34页
Ajax原理详解Word文件下载.docx_第16页
第16页 / 共34页
Ajax原理详解Word文件下载.docx_第17页
第17页 / 共34页
Ajax原理详解Word文件下载.docx_第18页
第18页 / 共34页
Ajax原理详解Word文件下载.docx_第19页
第19页 / 共34页
Ajax原理详解Word文件下载.docx_第20页
第20页 / 共34页
亲,该文档总共34页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

Ajax原理详解Word文件下载.docx

《Ajax原理详解Word文件下载.docx》由会员分享,可在线阅读,更多相关《Ajax原理详解Word文件下载.docx(34页珍藏版)》请在冰点文库上搜索。

Ajax原理详解Word文件下载.docx

AJAX实例

您的第一个AJAX应用程序

为了让您理解AJAX的工作原理,我们将创建一个小型的AJAX应用程序。

首先,我们需要一个带有两个文本框的HTML表单:

用户名和时间。

用户名文本框由用户填写,而时间文本框使用AJAX进行填写。

此HTML文件名为"

testAjax.htm"

(请注意这个HTML表单没有提交按钮!

):

<

html>

body>

formname="

myForm"

>

用户:

<

inputtype="

text"

name="

username"

/>

时间:

time"

/form>

/body>

/html>

我们将在下一节解释AJAX的基本原理。

AJAX浏览器支持

AJAX-浏览器支持

AJAX的要点是XMLHttpRequest对象。

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

IE浏览器使用 

ActiveXObject,而其他的浏览器使用名为 

的JavaScript内建对象。

如需针对不同的浏览器来创建此对象,我们要使用一条"

tryandcatch"

语句。

您可以在我们的JavaScript教程中阅读更多有关 

try和catch语句 

的内容。

让我们用这段创建XMLHttpRequest对象的JavaScript来更新一下我们的"

文件:

scripttype="

text/javascript"

functionajaxFunction()

{

varxmlHttp;

try

//Firefox,Opera8.0+,Safari

xmlHttp=newXMLHttpRequest();

}

catch(e)

//InternetExplorer

xmlHttp=newActiveXObject("

Msxml2.XMLHTTP"

);

Microsoft.XMLHTTP"

alert("

您的浏览器不支持AJAX!

"

returnfalse;

/script>

例子解释:

首先声明一个保存XMLHttpRequest对象的xmlHttp变量。

然后使用XMLHttp=newXMLHttpRequest()来创建此对象。

这条语句针对Firefox、Opera以及Safari浏览器。

假如失败,则尝试针对InternetExplorer6.0+的xmlHttp=newActiveXObject("

),假如也不成功,则尝试针对InternetExplorer5.5+的xmlHttp=newActiveXObject("

)。

假如这三种方法都不起作用,那么这个用户所使用的浏览器已经太过时了,他或她会看到一个声明此浏览器不支持AJAX的提示。

注释:

上面这些浏览器定制的代码很长,也很复杂。

不过,每当您希望创建XMLHttpRequest对象时,这些代码就能派上用场,因此您可以在任何需要使用的时间拷贝粘贴这些代码。

上面这些代码兼容所有的主流浏览器:

InternetExplorer、Opera、Firefox以及Safari。

下一节为您展示如何使用XMLHttpRequest对象与服务器进行通信。

AJAX-XMLHttpRequest对象

AJAX-更多有关XMLHttpRequest对象的知识

在向服务器发送数据之前,我们有必要解释一下XMLHttpRequest对象的三个重要的属性。

onreadystatechange属性

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

下面的代码定义一个空的函数,可同时对onreadystatechange属性进行设置:

xmlHttp.onreadystatechange=function()

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

readyState属性

readyState属性存有服务器响应的状态信息。

每当readyState改变时,onreadystatechange函数就会被执行。

这是readyState属性可能的值:

状态

描述

请求未初始化(在调用open()之前)

1

请求已提出(调用send()之前)

2

请求已发送(这里通常可以从响应得到内容头部)

3

请求处理中(响应中通常有部分数据可用,但是服务器还没有完成响应)

4

请求已完成(可以访问服务器响应并使用它)

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

if(xmlHttp.readyState==4)

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

responseText属性

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

在我们的代码中,我们将把时间文本框的值设置为等于responseText:

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

下一节,我们会介绍如何向服务器请求数据!

AJAX-请求服务器

AJAX-向服务器发送一个请求

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

open()方法需要三个参数。

第一个参数定义发送请求所使用的方法(GET还是POST)。

第二个参数规定服务器端脚本的URL。

第三个参数规定应当对请求进行异步地处理。

send()方法可将请求送往服务器。

如果我们假设HTML文件和ASP文件位于相同的目录,那么代码是这样的:

xmlHttp.open("

GET"

"

time.asp"

true);

xmlHttp.send(null);

现在,我们必须决定何时执行AJAX函数。

当用户在用户名文本框中键入某些内容时,我们会令函数“在幕后”执行。

xmlHttp.onreadystatechange=function()

xmlHttp.open("

xmlHttp.send(null);

onkeyup="

ajaxFunction();

下一节介绍"

的脚本,这样我们完整的AJAX应用程序就搞定了。

AJAX-服务器端的脚本

AJAX-服务器端的脚本

现在,我们要创建可显示当前服务器时间的脚本。

responseText属性会存储从服务器返回的数据。

在这里,我们希望传回当前的时间。

这是"

的代码:

%

response.expires=-1

response.write(time)

%>

Expires属性可设置在页面缓存失效前页面被缓存的时间(分钟)。

Response.Expires=-1指示页面不会被缓存。

运行您的AJAX应用程序

请在下面的文本框中键入一些文本,然后单击时间文本框:

窗体顶端

 

窗体底端

时间文本框可在不加载页面的情况下从"

获得服务器的时间!

AJAX请求实例

我们已看到AJAX可被用来创建更多交互性的应用程序。

AJAXSuggest实例

在下面的AJAX例子中,我们会演示当用户向一个标准的HTML表单中输入数据时网页如何与web服务器进行通信。

在下面的文本框中输入名字:

FirstName:

Suggestions:

例子解释-HTML表单

表单的HTML代码:

form>

FirstName:

id="

txt1"

showHint(this.value)"

p>

Suggestions:

spanid="

txtHint"

/span>

/p>

正如您看到的,这是一个简单的带有名为"

输入域的HTML表单。

输入域的事件属性定义了一个由onkeyup事件触发的函数。

表单下面的段落包含了一个名为"

的span,这个span充当了由web服务器所取回的数据的位置占位符。

当用户输入数据时,名为"

showHint()"

的函数就会被执行。

函数的执行是由"

onkeyup"

事件触发的。

另外需要说明的是,当用户在文本域中输入数据时把手指从键盘按键上移开时,函数showHint就会被调用。

例子解释-showHint()函数

showHint()函数是一个位于HTML页面head部分的很简单的JavaScript函数。

此函数包含以下代码:

functionshowHint(str)

{

if(str.length==0)

{

document.getElementById("

).innerHTML="

;

return;

xmlHttp=GetXmlHttpObject()

if(xmlHttp==null)

alert("

varurl="

gethint.asp"

url=url+"

?

q="

+str;

&

sid="

+Math.random();

xmlHttp.onreadystatechange=stateChanged;

url,true);

}

每当有字符输入文本框时,此函数就会执行。

假如文本域中存在某些输入,函数就会执行:

∙定义回传数据的服务器的url(文件名)

∙使用文本框的内容向url添加参数(q)

∙添加一个随机的数字,以防止服务器使用某个已缓存的文件

∙创建一个XMLHTTP对象,并告知此对象当某个改变被触发时执行名为stateChanged的函数

∙向服务器发送一个HTTP请求

∙如果输入域为空,此函数仅仅会清空txtHint占位符的内容

例子解释-GetXmlHttpObject()函数

上面的例子可调用名为GetXmlHttpObject()的函数。

此函数的作用是解决为不同浏览器创建不同的XMLHTTP对象的问题。

这是此函数的代码:

functionGetXmlHttpObject()

varxmlHttp=null;

returnxmlHttp;

例子解释-stateChanged()函数

stateChanged()函数包含下面的代码:

functionstateChanged()

{

if(xmlHttp.readyState==4)

).innerHTML=xmlHttp.responseText;

每当XMLHTTP对象的状态发生改变时,stateChanged()函数就会执行。

当状态变更为4(“完成”)时,txtHint占位符的内容就被响应文本来填充。

AJAX请求源代码

AJAXSuggest源代码的实例

下面的源代码属于上一节的AJAX实例。

您可以拷贝粘贴这些代码,然后亲自测试一下。

AJAXHTML页面

这是HTML页面。

它包含了一个简单的HTML表单,以及一个指向JavaScript的链接。

head>

scriptsrc="

clienthint.js"

/head>

下面列出了JavaScript代码。

AJAXJavaScript

这是JavaScript代码,存储在文件"

中:

varxmlHttp

varurl="

url=url+"

xmlHttp.onreadystatechange=stateChanged;

}

if(xmlHttp.readyState==4)

document.getElementById("

returnxmlHttp;

AJAX服务器页面-ASP和PHP

其实不存在什么“AJAX服务器”。

AJAX页面可以由任一因特网服务器提供服务。

在上一节的例子中被JavaScript调用的服务器页面是一个简单的名为"

的ASP文件。

下面我们列出了这个服务器页面代码的实例,使用ASP来编写。

AJAXASP实例

页面中的代码针对IIS使用VBScript编写。

它会检查一个名字数组,然后向客户端返回相应的名字:

dima(30)

'

用名字为数组赋值

a

(1)="

Anna"

a

(2)="

Brittany"

a(3)="

Cinderella"

a(4)="

Diana"

a(5)="

Eva"

a(6)="

Fiona"

a(7)="

Gunda"

a(8)="

Hege"

a(9)="

Inga"

a(10)="

Johanna"

a(11)="

Kitty"

a(12)="

Linda"

a(13)="

Nina"

a(14)="

Ophelia"

a(15)="

Petunia"

a(16)="

Amanda"

a(17)="

Raquel"

a(18)="

Cindy"

a(19)="

Doris"

a(20)="

Eve"

a(21)="

Evita"

a(22)="

Sunniva"

a(23)="

Tove"

a(24)="

Unni"

a(25)="

Violet"

a(26)="

Liza"

a(27)="

Elizabeth"

a(28)="

Ellen"

a(29)="

Wenche"

a(30)="

Vicky"

从URL取得参数q

q=ucase(request.querystring("

q"

))

如果q的长度大于0,则查找所有的hint

iflen(q)>

0then

hint="

fori=1to30

ifq=ucase(mid(a(i),1,len(q)))then

ifhint="

then

hint=a(i)

else

hint=hint&

"

"

&

a(i)

endif

next

endif

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2