AJAX技术及其在ASP.NET中的应用

AJAX技术及其在ASP.NET中的应用


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类的构造函数中: 

结束语 

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条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信