精灵巫婆 发表于 2015-1-16 22:42:44

ASP.NET编程:切磋一种AJAX功能的改善办法

如果需要重新编写代码,几乎任何一门计算机语言都可以跨平台了,还用得着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?

透明 发表于 2015-1-19 21:30:08

目前在微软的.net战略中新推出的ASP.net借鉴了Java技术的优点,使用CSharp(C#)语言作为ASP.net的推荐语言,同时改进了以前ASP的安全性差等缺点。但是,使用ASP/ASP.net仍有一定的局限性,因为从某种角度来说它们只能在微软的WindowsNT/2000/XP+IIS的服务器平台上良好运行(虽然像ChilliSoft提供了在UNIX/Linux上运行ASP的解决方案.

愤怒的大鸟 发表于 2015-1-24 19:16:40

ASP.NET可以无缝地与WYSIWYGHTML编辑器和其他编程工具(包括MicrosoftVisualStudio.NET)一起工作。这不仅使得Web开发更加方便,而且还能提供这些工具必须提供的所有优点,包括开发人员可以用来将服务器控件拖放到Web页的GUI和完全集成的调试支持。微软为ASP.net设计了这样一些策略:易于写出结构清晰的代码、代码易于重用和共享、可用编译类语言编写等等,目的是让程序员更容易开发出Web应用,满足计算向Web转移的战略需要。

谁可相欹 发表于 2015-2-2 12:43:07

那么,ASP.Net有哪些改进呢?

山那边是海 发表于 2015-2-23 09:27:13

CGI程序在运行的时候,首先是客户向服务器上的CGI程序发送一个请求,服务器接收到客户的请求后,就会打开一个新的Process(进程)来执行CGI程序,处理客户的请求。CGI程序最后将执行的结果(HTML页面代码)传回给客户。

海妖 发表于 2015-3-7 06:35:21

关于ASP.NET功能上,ASP.NET比微软以前的ASP(96年出现)有更强大的library,更好的稳定性。ASP.NET可以使用.NETFramework中所有组件(也就是说.NET能实现的,ASP.NET一样能实现)。

兰色精灵 发表于 2015-3-14 14:14:35

众所周知,Windows以易用而出名,也因此占据不少的服务器市场。
页: [1]
查看完整版本: ASP.NET编程:切磋一种AJAX功能的改善办法