admin 管理员组文章数量: 1087135
2024年4月13日发(作者:简单构造函数和析构函数)
中南论坛 2008年第4期
Ajax技术在Web 2.0中的应用与实现
何 维
(武汉科技大学中南分校
摘
信息工程学院,湖北武汉430223)
要:本文主要探讨Ajax技术在Web中的应用原理、较传统web应用的优势等问题,并举例说明用 、
Ajax建立用户登录功能的实现方法。
关键词i Ajax;Java,Script ‘
中图分类号:TP311 文献标识码:A
1 概述
1.通讯采用异步模式,使网页执行的效率大大
提高。例如,客户端在向服务器端发出了查询操作
Ajax是一种新型的网页交互技术。它允许在客 后,将立刻执行查询语句的下一条代码,无须停下
户端和服务器之间只传输少量的信息,避免了每次 来等待服务器端的反馈结果。
点击都要重新下载页面的等待,从而让用户得到更
2.优化了浏览器和服务器间的传输,减少不必
快的响应和更及时的反馈。
要的数据下载 。传统web应用的基本过程是,先
在传统的网站程序中,浏览器负责向服务器提 让用户填写表单,在提交表单时向Web服务器发送
交用户请求,并处理服务器对请求的响应。这使得
一
个请求。服务器端接收并处理请求,然后返回一
用户为了提交一点点数据都需要重新下载网页。而
个新的网页。这样的过程浪费了很多时间,因为在
网页的频繁刷新不仅使用户等待响应的时间变长,
前后两个页面中,网页代码往往大部分是相同的。
而且更容易导致用户的误操作。
由于每次交互过程都需要向服务器端发送请求,网
Ajax模型利用中间层来解决这一问题,即Ajax 页的响应速度就依赖于服务器的响应速度,这就导
引擎(Ajax Engine),用它来处理客户端和服务器之
致了用户的网页界面响应比本地程序的界面响应要
间的通信。Ajax引擎使用JavaScript函数实现,只有
慢得多。
当需要处理客户端与服务器间通信的时候才调用它。
3.Ajax引擎在客户端运行,并承担一部分原本
与传统模型的最大不同是,Ajax模型的处理过程是 由服务器端处理的工作,从而减少服务器端的数据
异步的,不需要等到响应到达后才继续执行后续的
负载,进一步提升网络交互的效率。Ajax应用程序
代码。
仅向服务器端发送并获取交互所必需的数据,从而
2较传统web应用的优势
使服务器和浏览器间交换的数据大大减少,用户就
能看到更快响应的应用过程。另一方面,由于很多
2.1 Ajax技术图示
的处理工作能在客户端上完成,所以也缩短了服务
器的处理时间。
3用Ajax实现用户登录功能
3.1 建立用户信息表
建立存储用户信息的数据库表users表,其中包
2.2 Ajax的技术优势
含3个属性,分别是序号xuhao、用户名xingming和
收稿日期t 2008—06—05
作者简介:何维(1982一),男,湖北武汉人,武汉科技大学中南分校信息工程学院教师。
2008年第4期 科技探索
密码mima。以下为创建此表的SQL语句:
create table users(xuhao int primary key unique not
null,xingming varchar(50)not null,mima varchar
(50)not null
3.2服务器端代码
}
3.3客户端登录页
客户端登录页由两部分组成。一部分是动态网
页的HTML代码,另一部分是Ajax(JavaScript)代
码,用来把请求发送到服务器端,并且要能处理响
用户登录门户网站的过程是:客户端代码先向
应。JavaScript语言中的Eval()方法可将传递给它
的字符串作为JavaScript代码来执行。如果字符串中
包含一个变量名,它就创建这个变量。如果Eval()
的输人参数包含一个函数调用,它就执行这个函数。
服务器端发送一个请求,在请求中传递用户的身份
信息。服务器端获取到这一请求,并要确定此身份
信息是否正确。如果正确,就开始创建主页;如果
身份信息不正确,就给客户端页面发回出错消息。
以Java语言为例,可用了servlet程序封装所有
与服务器端的交互代码。利用一个过滤器来检查us—
er对象是否己经保存在会话中。如果是,就接受;
否则将根据请求中提供的用户名和密码来做身份验
证。如果接受,请求就会继续传递到servlet程序中;
不然就返回一条出错消息。以下代码封装了出错消
息的JavaScript语句:
public static Stirng getI ̄ginError(){
StringBuffer jsBuf=new StringBuffer()
.
append(”document.getElementByld(gpanProc—
essing')\n”
.
append(”.innerHTML:”)
.
append(”姓名和密码不正确! \n”);
return jsBuf.tostring();
}
服务器端从请求中取出用户名和密码,然后访
问数据库寻找匹配的记录。如果找到匹配此用户信
息的记录,会返回一个user对象的实例,然后将其
保存在会话中。当后续再有请求时,就不需要再发
送用户名和密码了。此方法的优点是,使用户非常
容易执行注销操作,只需将User实例从会话中删除
即可。以下为User对象的定义代码:
//User.java
public class User{
private int xuhao=一1:
private String xingming null;
public User(int xuhao,Stirng xingming){
Super();
this.xuhao=xuhao;
this.xingming xingming;
}
public int getXuhao(){return xuhao;}
public Stirng getXingming() {return xingming
:}
需要注意的是,虽然Eval()方法功能十分强大,
但如果要做的操作过于复杂,该方法的性能可能会
受到影响。以下为网页的HTML代码:
<form nalne:’’Form1”>
<div id=”header”>
<span id=”login”>
姓名:
<input type=”text”name=”xingming’’>
<br>密码:
<input type=”mima”name=’’mima”>
<br>
<span id=”spanProcessing’’></span>
<input type=”submit”name=”btnsub”value
=”登录”onclick=”loginreqrest()”>
</span>
<span id=”sloganText”>提示信息</span>
</div>
<div id=”defauhContent”>
<P>网页中的其他内容</p>
</div>
<div id=”divSettings”class=’’hidden”>
</div>
</form>
代码中的onclick事件用来将数据提交到服务器
端,通过调用loginreqrest()函数启动Ajax请求。
为美化页面,可在网页上使用一个CSS规则。例如
下列代码,在文档的head标签中添加一个内嵌的
style标签,用来改变表单颜色、字体、大小、位置、
边距等样式:
<style type=”text/css”>
htm1.body{margin:Opx;padding:0px;height
:100%;}
#header{background—color:#c0c0c0;height:
lOOpx;border—bottom:1px solid black;font—weight:
bold;}
中南论坛 2008年第4期
#1ogin{text—align:fight;float:right;margin
个字符串中,然后通过ContentLoader对象提交给服
—
top:15px;margin—right:15px;}
#sloganText{font—size:25px;margin—left:
15px;line—height:lOOpx;}
</style>
3.4登录代码
Ajax的优势在于:在网页点击时,JavaScript提
交代码只发送用户名和密码到服务器,而无须提交
整个页面,这样就能加快用户浏览的速度。例如在
本例中,引用一个外部的JavaScript文件net.js:
<script type=”text/javascript”src=”net.jS”
></script>
net.jS包含三个步骤的代码。首先通知用户:请
求正在被处理;然后收集发送的信息;最后将请求
信息发送到服务器。最后一步用函数LoginRequest
实现,代码如下:
function LoginRequest(){
document.getElementByld(”spanProcessing”).
innerHTML=”Verifying Credentials”:
var url=”portalLogin.servlet”:
var strName=document.Form1.xingming.value:
var strPass=document.Form1.mima.value:
var strParams=”user=”+strName+”&pass
=
” strPass
var loaderl=new net.ContentLoader(url,Create-
script,null,”POST”,strParams);
}
在发送信息之前,会显示一条消息,告诉用户
点击“登录”按钮的操作正在处理中。这样可以防
止用户误以为什么都没发生而重复地点击按钮,造
成系统错误。
网页中提交的用户名和密码字段值会被放在一
务器。当服务器返回登录成功信息时会调用create.
script()函数,它负责处理由服务器端页面返回的
数据:
function Createscript(){
strText=this.req.responseText;
eval(strText);
}
responseText属性中返回了包含JavaScript语句的
字符串,然后使用eval()函数执行字符串。字符
串中可以包含由LoginFilter产生的出错消息,也可
以包含允许用户登录时由SelectServlet返回的窗口创
建代码。
如果登录成功,上述的请求信息就会被提交给
主页面,最后利用HTML创建下一个窗口。
4结论
用Ajax技术建立的网站可让用户在访问时体验
到浏览本机资源一样的顺畅感,大大减少了重复下
载网页资源的等待时间,并且能使网页具有更好的
视觉效果。但需要注意的是,使用Ajax技术前一定
要有所规划,计划好哪些方面需要用到Ajax,否则
会给网站的修改和维护带来麻烦。另一方面,由于
JavaScript语言的强大功能和语言缺陷,在编写和调
试时一定要多考虑怎样规避潜在的执行错误和病毒
入侵
参考文献
[1]Ryan Asleson,Nathaniel T.Schutta.Foundation of Ajax[M]
北京:人民邮电出版社,2006.
版权声明:本文标题:Ajax技术在Web2.0中的应用与实现 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/p/1712969958a614885.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论