仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 643|回复: 6
打印 上一主题 下一主题

[学习教程] ASP.NET编程:切磋一种AJAX功能的改善办法

[复制链接]
精灵巫婆 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:42:44 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

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?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-28 15:35

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表