山那边是海 发表于 2015-1-16 22:29:40

ASP.NET网页编程之解开Ajax手艺中的达芬奇暗码

在经过全球个人PC市场占有90%的微软对asp.net不断优化与整合后,asp.net与微软自身平台的动用上更加的高效,加上asp.net在应用上非常容易上手,相信asp.net仍会是最多客户选用的脚本语言,并会在未来几年继续领跑。如今,Ajax手艺开展势头迅猛,开辟者已创建了一个挪用大批客户端javascript、不休增加的、庞大的体系。因而,在JavaScript上实验OO手艺便成了办理庞大性的一种手腕。在此过程当中,多半开辟者很快便熟悉到:JavaScript是一种原型化的(prototypical)言语,它短少OO本身带来的多种便当。

  几近每位在开辟JavaScript时实验使用面向工具手艺的开辟者,或多或少城市问本人一个成绩:“怎样挪用父类(superclass)的办法?”在Ajax手艺还没有今朝如许炙手可热之前,这类成绩很少呈现,由于年夜多半开辟者仅在举行客户端form考证大概复杂的DHTML/DOM操纵时利用JavaScript。在那些复杂的办理计划中,函数式编程(functionalprogramming)是很成心义的,面向工具编程则处在次之主要的地位。

  如今,Ajax手艺开展势头迅猛,开辟者已创建了一个挪用大批客户端JavaScript、不休增加的、庞大的体系。因而,在JavaScript上实验OO手艺便成了办理庞大性的一种手腕。在此过程当中,多半开辟者很快便熟悉到:JavaScript是一种原型化的(prototypical)言语,它短少OO本身带来的多种便当。

  OO计划的大旨和关于它的一些话题谈起来很年夜,但只着眼于Class的界说体例,我以为它是JavaScript开辟者实验办理成绩的首选。因而,你能够在互联网上找到很多分歧的成绩办理案例,但在我看过它们后难免有些扫兴――这些案例都是在某个场所下合用,而不是放之四海而皆准的通法。而我对这个话题的乐趣来自于我的team在开辟ThinWireAjaxFramework的影响。

  因为这个框架天生出对客户端代码的需求,才使我们“自愿”往完成牢靠的、撑持父类办法挪用的OO形式。经由过程父类挪用,你能够进一步依托类的承继特征来中心化通用代码,从而更容易于削减反复代码,往失落客户端代码的坏滋味。

  上面排列出了一些在我的研讨过程当中碰到的办理体例。终极,我没有从中找出一个能够吸收的办理计划,因而我不能不完成一个本人的办理计划,你将在本文的开头部分看到这个计划。

  但是父类挪用在这里是最主要的OO机制,因而我必要一个响应的事情形式,也恰是由于在我的概念华夏型化体例是丑恶的,以是我更必要一种加倍天然地利用JavaScript界说类的办法。

  MoreSolutions:

  好吧,让我们进进会商。正如开辟者所发觉的那样,在JS中完成基础的承继是很简单的事,现实上有一些尽人皆知的办法:

  丑恶的Solution:

  没有举行父类挪用的复杂承继:

//提早写好的JavaScriptClass界说和承继
//固然,这类代码很丑恶,分发着代码的坏滋味。
functionBaseClass(){
//BaseClassconstructorcodegoeshere
}

BaseClass.prototype.getName=function(){
return"BaseClass";
}

functionSubClass(){
//SubClassconstructorcodegoeshere
}

//InheritthemethodsofBaseClass
SubClass.prototype=newBaseClass();

//OverridetheparentsgetNamemethod
SubClass.prototype.getName=function(){
return"SubClass";
}

//Alerts"SubClass"
alert(newSubClass().getName());



  招致IE内存保守的Solution:

  这类完成体例可以招致在IE中的内存泄露,你应当只管制止:

//运转时的JavaScriptClass界说和承继
//看上往很传统,但这些剧本会招致在InternetExplorer中的内存泄露.
functionBaseClass(){
this.getName=function(){
return"BaseClass";
};

//BaseClassconstructorcodegoeshere
}

functionSubClass(){
//在工具实例创建时重载父类的getName办法
this.getName=function(){
return"SubClass";
}

//SubClassconstructorcodegoeshere
}

//InheritthemethodsofBaseClass
SubClass.prototype=newBaseClass();

//Alerts"SubClass"
alert(newSubClass().getName());



  就像我在第一个完成办法中所正文的那样,第一个完成办法有些丑恶,但它比拟引发内存泄露的第二种体例即是首选了。

  我把这两种办法放在这里的目标是指出你不该该利用它们。
听03很多师兄说主讲老师杭城方讲课很差就连旁听也没有去了)

精灵巫婆 发表于 2015-1-17 12:03:11

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

小妖女 发表于 2015-1-20 18:30:11

以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上是远远比不上PHP/JSP,其次就是缺乏完善的纠错/调试功能,这点上ASP/PHP/JSP差不多。

柔情似水 发表于 2015-1-29 14:25:29

ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp)。

蒙在股里 发表于 2015-2-6 01:59:30

主流网站开发语言之CGI:CGI就是公共网关接口(CommonGatewayInterface)的缩写。它是最早被用来建立动态网站的后台技术。这种技术可以使用各种语言来编写后台程序,例如C,C++,Java,Pascal等。

透明 发表于 2015-2-14 22:02:08

在asp.net虚拟主机的服务提供商中,目前首推的是CNNIC的其中一家域名注册机构---时代互联(www.now.net.cn),他们早在2001年微软刚推出Asp.net时就推出了对应的Asp.net虚拟主机了,经笔者的使用测试,他提供的Asp.net性能非常的稳定,版本也会定期的更新,目前他的

变相怪杰 发表于 2015-3-4 10:45:48

这也就是最近几年来随着各种新的后台技术的诞生,CGI应用在Internet上越来越少的原因。CGI方式不适合大访问量的应用。

小魔女 发表于 2015-3-11 18:25:30

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

简单生活 发表于 2015-3-19 07:31:28

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

飘飘悠悠 发表于 2015-3-27 13:10:57

这也就是最近几年来随着各种新的后台技术的诞生,CGI应用在Internet上越来越少的原因。CGI方式不适合大访问量的应用。
页: [1]
查看完整版本: ASP.NET网页编程之解开Ajax手艺中的达芬奇暗码