|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
如果需要重新编写代码,几乎任何一门计算机语言都可以跨平台了,还用得着Java嘛,而且像PHP/C#等语言不需要修改代码都可以跨Windows/Linux。ajax|功能 1、弁言
在Web表单中,我们利用AJAX来从客户端(经由过程JavaScript)挪用服务端办法,而在AJAX外部则举行XMLHttpRequest挪用。我测试了一些以分歧体例完成的AJAX函数。别的,我还监控剖析了举行AJAX挪用的功能和性命周期。了局,我发明在Web表单中利用AJAX时存在一些严峻的成绩。不外,我也找到了这些成绩的一种办理办法。在本文中,我恰是想与列位剖析这一成绩及其响应的办理计划。
2、在利用AJAX时所碰到的功能成绩
关于每个AJAX挪用来讲,我们都要创立包括AJAX办法的类的一个实例。别的,假如我们在类级上利用new关头字的话,我们还要为字段、属性及别的类级的变量创立实例。
3、完成计划
我创立了一个工程,它包括两个Web表单:WebForm1.aspx和WebForm2.aspx,另有一个类Student.vb。这两部分code-behind页面都利用了一个AJAX函数getData()和一个Student范例的大众变量。借助于MXLogger类,我纪录下每个阶段的实行流程。
注重:Webform2.aspx的AJAX函数GetData()是共享的,而在WebForm1中,它不是共享的。
Student.vb
PublicClassStudent
SubNew()
MXLogger.AddLog("FromStudent.Constructor")
EndSub
Dim_NameAsString
PublicPropertyName()AsString
Get
Return_Name
EndGet
Set(ByValValueAsString)
_Name=Value
EndSet
EndProperty
EndClass
WebForm1.aspx.vb
PublicClassWebForm1
PublicStudentAsNewStudent
SubNew()
MXLogger.AddLog("FromWebForm1.Constructor")
EndSub
<Ajax.AjaxMethod(Ajax.HttpSessionStateRequirement.Read)>_
PublicFunctiongetData()AsString
MXLogger.AddLog("FromWebForm1.Ajax.getData()")
Return"ImaNonSharedFunction"
EndFunction
EndClass
WebForm2.aspx.vb
PublicClassWebForm2
PublicStudentAsNewStudent
SubNew()
MXLogger.AddLog("FromWebForm2.Constructor")
EndSub
<Ajax.AjaxMethod(Ajax.HttpSessionStateRequirement.Read)>_
PublicSharedFunctiongetData()AsString
MXLogger.AddLog("FromWebForm2.Ajax.getData()")
Return"ImaSharedFunction"
EndFunction
EndClass
4、测试使用程序
・测试用例1:
运转webform1.aspx而且从JavaScript中挪用getData()AJAX函数三次。
・测试用例2:
运转webform2.aspx而且从JavaScript中挪用getData()AJAX函数三次。
关于下面的测试用例,我失掉以下的日记输入数据:
//请注重,为懂得释之目标,我在个中手工到场了一些日记行
LOGfortheTestCase1:(NonAjaxSharedFunction)
-------WhileLoadingThePage--------
5/9/200610:37:29AM>>FromStudent.Constructor
5/9/200610:37:29AM>>FromWebForm1.Constructor
5/9/200610:37:29AM>>FromWebForm1.Ajax.getData()
-------FirstCallForGetData()--------
5/9/200610:37:29AM>>FromStudent.Constructor
5/9/200610:37:29AM>>FromWebForm1.Constructor
5/9/200610:37:29AM>>FromWebForm1.Ajax.getData()
-------SecondCallForGetData()--------
5/9/200610:37:29AM>>FromStudent.Constructor
5/9/200610:37:29AM>>FromWebForm1.Constructor
5/9/200610:37:29AM>>FromWebForm1.Ajax.getData()
-------ThirdCallForGetData()--------
5/9/200610:37:30AM>>FromStudent.Constructor
5/9/200610:37:30AM>>FromWebForm1.Constructor
5/9/200610:37:30AM>>FromWebForm1.Ajax.getData()
LOGfortheTestCase2:(SharedAjaxFunction)
-------WhileLoadingThePage--------
5/9/200610:37:09AM>>FromStudent.Constructor
5/9/200610:37:09AM>>FromWebForm2.Constructor
5/9/200610:37:09AM>>FromWebForm2.Ajax.getData()
-------FirstCallForGetData()--------
5/9/200610:38:11AM>>FromWebForm2.Ajax.getData()
-------SecondCallForGetData()--------
5/9/200610:38:11AM>>FromWebForm2.Ajax.getData()
-------ThirdCallForGetData()--------
5/9/200610:38:11AM>>FromWebForm2.Ajax.getData()
我们能够看到,在下面的日记输入数据中,关于测试用例1来讲,我们可以看到更多的来自于Webform1和Student的机关器的日记数据。
5、结论
我的倡议是,在一切大概的中央,我们应当利用针关于AJAX的共享办法,以便它不会创立更多的Web表单实例和类级的字段。如许以来,我们就能够削减从GC中挪用Finalize()的次数。
那做企业软件是不是最好用J2EE? |
|