2024年6月20日发(作者:)
2010年第4期 福建电脑 107
AJAX技术及其在ASP.NET中的应用
余
勇
(河南经贸职业学院 河南郑州450053)
【摘要】:本文介绍了AJAX技术的基本原理,较为详细的说明了AJAX技术的核心对象一XMLHttpRequest对象,并在
ASP.NET的基础上使用AJAX技术实现了一个典型应用一用户注册模块中用户名的异步验缸功能。
【关键词】:AJAX技术;ASP.NET;局部刷新;XMLHttpRequest对象
1.AJAX技术的基本原理
在使用AJAX技术时。我们需要建立XMLHttpRequest对象。根
AJAX的全称是异步JavaSeript和XML(Asynchronous
据IE浏览器的类型不同.我们有如下方法建立XMLHttpRequest
iavaseript and xm1),其基本功能就是实现WEB页面与服务器端 对象。
的无刷新交互.即实现在不刷新页面的情况下将WEB服务器上
1)非IE浏览器创建XmlHttpRequest对象的方法
xmlHttp=new XmlHttpRequest0;
2)IE老版本创建XmlHttpRequest对象的方法
已经改变的内容显示到WEB页面上。从而增强用户体验。
AJ.AX技术其实是JavaSeript技术与XML技术的综合应
用。AJAX技术的基本原理就是通过建立XmlHttpRequest对象
来向服务器发送异步请求.并从服务器获得数据.然后用
JavaSeript来操作DOM对象来更新页面
2.AJAX中用到的核心对象
xmlHap=new AetiveXObject(”Msxml2.XMLHTrP”);
3)IE新版本创建XmlHttpRequest对象的方法
xmlHttp=new AetiveXObjeet(”
3.JAX技术在ASP.ANET中的典型应用
XMLHttpRequest是AJAX技术的核心对象.它是在IE5中 AJAX技术在ASP.NET中的一个典型应用就是进行用户名
首先引入的,是一种支持异步请求的技术。简单的说。就是使用
JavaScript并通过XMLHttpRequest.可以随时向服务器提出请求
和处理响应,而不阻塞用户,从而达到无页面刷新的效果。因此。
下面重点来看看XMLHttpRequest。
(1)XMLHttpRequest对象的重要属性有:
1)onreadystatechange:每次状态改变所触发事件的事件处
理程序:
2)responseText:从服务器进程返回数据的字符串形式:
的可用性验证。我们在注册用户时,需要验证用户所使用的用户
名是否已经被使用.由于已经注册用户的用户名存储在服务器
的数据库中,因此。我们需要异步的到服务器中进行用户名的验
证,以下是使用AMX技术实现用户名验证的步骤。
(1)创建用户界面的HTML代码
用户名:<asp:TextBox ID="txtUserName”runat=”server”on.
blur-=”eheekUserName 0”></asp:TextBox><div id=”showMessage”
></div>
3)responseXML:从服务器进程返回的DOM兼容的文档数
据对象:
4)status:从服务器返回的数字代码。它有以下几种情况:
200:请求成功
・
・
.
(2)创建XMLHttpRequest对象
function CreateXmlHttpO
I
if(if(window.AetiveXObjeet))//IE浏览器
{
xmlHttp=new ActiveX
r ̄tum xmlHttp;
202:请求被接受但处理未完成
400:错误请求
404:请求资源未找到
.
500:内部服务器错误
5)status Text:伴随状态码的字符串信息
6)readyState:对象的状态值.它有以下几种情况:
.
}
其它浏览器创建XmlHttpRequest对象的方法参见上文所述
l
(3)通过XMLHttpRequest对象获取数据
function checkUserName0
l
XMLHttpRequest
var url=
・
・
・
0:对象已建立(未初始化),但是尚未初始化
l:对象已建立 始化),尚未调用send方法
2:send方法已调用(发送数据),但是当前的状态及http头
+¥(..txtLoginName”).value;
未知
・
xndHttp.open(”GET'’,url,true);
3:已接收部分数据(数据传送中1,因为响应及http头不
全,这时通过responseBody和resportseText获取部分数据会出现
错误
xmlHttp.send(nul1);
J
function functionOk0fl接收返回结果的方法
l
4:数据接收完毕(完成1。此时可以通过通过l-esponseXml
和responseText属性获取完整的回应数据
(2)XmlHnpRequest的重要方法有:
1)open(a,b,c):open方法有三个参数,分别是:
・a:向服务器提交数据的类型,即post还是 t。
b:请求的ud地址和传递的参数
・C:传输方式,false为同步.true为异步。默认为true。如果
是异步通信方式 e),客户机就不等待服务器的响应:如果是同
步方式(falsel。客户机就要等到服务器返回消息后才去执行其他
操作。
・
if(xmlHttp.readys呲e=:4) 【lnmt【p数据接收完毕
l
if(xmlHttp.Btalus==200’,,妻£据发送并接收完毕后才可获取
l
var objMessage= showMessage”);
objMessage.imaerlfrML---xralHttp.re ̄ponaeText;
I
l
l
・
2)Send0:Send方法用于发送请求。
(3)建立XMLHttpRequest对象
腰
(4)验证用户名的一般处理程序
创建一个一般处理程序文件UserCheck.ashx,并添加如下代
con ̄x0 (下转第106页)
。
public void
106
J
福建电脑
前面两个步骤与方法一相同。
S3:在View类重载OnCmdMsg函数
2010年第4期
S3:在CMainFrame类中重载OnCommand0l ̄函数.实现动
态菜单的响应函数:
BOOL
BOOL CDymanieMenuView::OnCmdMsg fUINT hiD。int nCode。void*pExtra,
AFX
CMDHANDLERINFO‘pHandlerlnfo)
_
ARAMwParam,LPARAM1Pm ̄n)
{
|{TODO:Add your specialized eode here and/or call the base class
{//TODO:Add your specialized code here and/or call the base class
iff0==nCode) ,/表明这是一个菜单命令
l
if(nlD>=IDM_TELEPHONE&&nIDdDM_TELEPHONE+m number)
I
UINT MenulD=LOWORD(wPamm);
CDymanicMenuView view= CDymanicMenuView‘)GetAetiveView0;
if(MenulD>=IDM_TELEPHONE&&MenulD<IDM_TELEPHONE+view—>
e numberr)
{
CCIientDC de(view};
CS ̄ng str=-view->m_strAtray.C,etAt(MenuID-IDM_TELEPHONE);
de.TextOut(O,O,S呻;
return TRUE;
if(NULL==pHandlerlnfo)
(
CString str=m strArray.GetAt(nlD-IDM_TELEPHONE);
MessageBox(str);
returi1TRUE;J
J
return TRUE;
】
return CFrameWnd::OnCommand(wParam,IParam);
}
】
return cView::OncmdMsg(nID,nCode,pExtra,pHandhrlnfo);
S4:但此时运行程序时,动态添加的菜单项是灰色的。为什
J .
么呢?在MFC中有一个这样的变量:CFrameWnd::m bAu.
总结
此方法与方法一相比:mbAutomenuEnable没有设置为
tomenuEnable。如果该数据成员为TRUE(缺省值),程序将自动
使得对其它菜单项没有合作影响。
禁止没有0N
UPDATECOMMAND
UI或者ON
COMMAND的
FALSE,
_
———_
菜单项。所以我们需要在CMainFrame类的构造函数中:
结束语
m
bAutoMenuEnable=FALsE;
以上就是通过重载OnCommand函数或OnCmdMsg函数来
S5:要把视类和文档类的头文件包含到框架类的源文件中
实现真正的动态菜单及命令响应.可以任意地添加子菜单或菜
_
单项,而不必考虑菜单项ID,不必事先编写消息映射函数、消息
消息响应函数。
此方法的缺点为:由于把m
bAutomenuEnable设置为
映射表、
FALSE,使得应用程序原本的菜单失去了原本的状态
参考文献:
方法二:重载OnCmdMsg函数
总结
_
孙鑫,余安萍.Vc++深入详解【M】.北京:电子工业出版社2006
・—・ 一・- -—+--+一+-—・
(上接第107页)
l
if(context.Request.QueryString[”userName”】!=nul1)
{
,,到数据库中查询验证用户名是否存在.并向客户端输出验证结
果。
}
l
深入了解AJAX技术的原理.并使用代码方式实现我们要实现
的功能和效果。
参考文献:
[1】王倚.Aj“技术构架及其在Web中的应用明.高等职业教育(天津职
业大学学报),2009,12
[2】王净、战凯.AJAX技术和Web应用U1.舰船电子工程,2009,11
4.结束语
3】修桂华、李红光.AJAX技术在ASP.NET开发中的应用Ⅱ】.科技资讯,
AJAX技术在当前得到了广泛应用.本文从AJAX技术实现
[
的原理人手,介绍了在ASENET中使用AJAX技术的方法,虽然
2009,11
4】孙启良.Aj 技术与传统Web应用的比较o1.信息技术,2010,1
ASP.NET中包含有AJAX控件,但,要想灵活运用它,我们必须
[
(上接第126页)
括用户ID、姓名、学号,工作证号、密码、性别、身份、班级、邮箱、
开放实验管理系统的开发减少了实验预约步骤.使教师和
电话、QQ号、状态等。②实验室信息表:包括实验室ID、实验室
学生预约实验更加简单易行.同时也使实验管理员从繁琐的实
名称、最大容纳人数。③实验预约信息表:包括预约ID、预约人
验管理工作中解脱出来,大幅提高工作效率。为学生的实验课前
学号,工作证号、实验室ID、实验项目名称、对应课程名、预约周 预习和课后复习提供了尽可能丰富的资料.使学生可以不受时
拉
次、预约星期几、预约节次、预约标志、日期等。④实验资源库表:
间和地点的限制及时查阅实验相关资料。通过网上交流平台.
包括标题、类别、发布日期、上传人、附件、备注等。⑤实验报告数
近了教与学的距离,为广大师生提供了学习、交流平台。
据表:学号、姓名、实验项目名称、上传时间、附件、评阅人、成绩
等。
5、系统安全
参考文献:
…涂春萍,柴亚辉,甘岚.基于MVC的多数据库的开放实验预约系统设
f21张勇,肖利.基于WEB的实验教学管理系统的设计丌1.吉林师范大学
学报(自然科学版),2009,11(4):112—115.
f31付章杰,娥凌江,李勇军.开放实验综合性资源型网络平台的设计与实
现Ⅱ】.现代教育技术,2008,18(11):117—119.
华东交通大学学报,2009,260):42—47.
在服务器安全方面。使用防火墙、入侵检测、WEB安全网关
计m.
等安全软件来保护服务器。关闭服务器上不使用的端口和账户,
每天至少备份一次系统数据。在用户安全方面。将用户划分为不
同的身份.不同身份的用户对开放实验管理系统中的各个功能
模块具有不同的权限。采用MD5加密算法对数据库中的密码字
段进行加密,当用户登录时。系统将用户输入的密码计算成
MD5值,然后再去和数据库中保存的MD5值的密码进行比较。
f41郑耀东,蕖骞.ASP.NET网络数据库开发实例精解fM1.北京:清华大学
出版社.2006.
这样即使入侵者盗取了系统数据库也无法知道用户的密码是什
28(1 1):84—87.
么,从而保证了数据库的安全
[6]胡桃,忻展红.论经济管理类实验中心教学管理平台的建设Ⅱ】.北京邮
6、结束语
电大学学报(社会科学版),2009,11(5):78—83.
[5】魏伟.加强实验教学示范中心网络化管理Ⅱ】.实验室研究与探索,2009,
发布者:admin,转转请注明出处:http://www.yc00.com/web/1718881736a2753242.html
评论列表(0条)