仓酷云

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

[学习教程] ASP教程之二十八条改良 ASP 功能和表面的技能(8-...

[复制链接]
小女巫 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:54:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
ASP一般认为只能运行在IIS上,正如前面所提到的,这并不是十分正确,事实上,ASP也能运行在Apache上。ApacheASP可在任意Apache服务器上运行有限的ASP功能,所需做的,只需打开mod_perl。技能|功能技能8:迟一点取得资本,早一点开释资本
技能9:历程外实行历程以功能调换牢靠性
技能10:利用显式选项
技能11:在子例程和函数中利用部分变量
技能12:将常常利用的数据复制到剧本变量中
技能13:制止从头断定数组的维数
技能14:利用呼应缓冲

技能8:迟一点取得资本,早一点开释资本
这里是一个小技能供您参考。一样平常来讲,最好迟一点取得资本,早一点开释资本。这合用于COM工具和文件句柄和别的资本。

这类优化办法次要用于ADO毗连和纪录集。当您利用完纪录集,例如说在显现一个表及其数据以后,应当即开释它,而不是比及页面停止时再开释。将VBScript变量设置为Nothing是最好的做法。不要让纪录集超越感化域以外。并且,要开释任何相干的Command或Connection工具(在将纪录集或毗连设置为=Nothing之前,不要健忘挪用Close())。这会延长数据库必需为您筹办资本的工夫,并尽快开释数据库到毗连池的毗连。

技能9:历程外实行历程以功能调换牢靠性
ASP和MTS/COM+二者都有设置选项,可以使您分身牢靠性和功能。当创建和部署使用程序时,应晓得怎样分身二者的功能。

ASP选项
能够设置ASP使用程序,以便以三种办法之一运转。在IIS5.0中,引进了“断绝级”这一术语以申明这些选项。这三个断绝级分离是初级、中级和初级:

初级断绝。这在IIS的一切版本中都失掉撑持,且是最快的。它在Inetinfo.exe中运转ASP,Inetinfo.exe是次要IIS历程。假如ASP使用程序溃散,IIS也会溃散。(要在IIS4.0下从头启动IIS,Web站点办理员应利用诸如InetMon之类的工具监督站点,假如服务器产生妨碍,应启用批处置文件以从头启动服务器。IIS5.0引进了牢靠的从头启动,该办法可以使产生妨碍的服务器主动从头启动。)
中级断绝。IIS5.0引进了这个新的级别,它被称为历程外级别,由于ASP在IIS历程以外运转。在中级断绝中,被设置作为中级断绝运转的一切ASP使用程序都共享一个历程空间。这就削减了在一台服务器运转多个历程外ASP使用程序所必要的历程数目。中级断绝是IIS5.0中的默许断绝级别。
初级断绝。在IIS4.0和IIS5.0中撑持这一级别,初级断绝也是历程外的。假如ASP溃散,Web服务器其实不会溃散。下次ASP哀求时,ASP使用程序就会主动从头启动。在初级断绝中,设置作为初级断绝运转的每一个ASP使用程序都在其自有历程空间中运转。如许做可回护ASP使用程序相互之间不互相搅扰。其弱点是它请求每一个ASP使用程序都要有一个独自的历程。当在一台服务器上必需运转很多使用程序时,体系开支就会年夜年夜增添。
哪一个选项最好的呢?在IIS4.0中,历程外运转将明显下降功能。在IIS5.0中,做了很多改善,将历程外运转ASP使用程序所发生的开支降到最低限制。现实上,在尽年夜多半测试中,IIS5.0中的ASP历程外使用程序比IIS4.0中的历程内使用程序运转得更快。不论如何,在两个平台上,历程内(低断绝级)功能最好。可是,假如会见率绝对较低或最年夜吞吐量较低,低断绝级的上风不太分明。因而,在您每Web服务器每秒钟必要数百或不计其数页面时,才会以为有需要设置低断绝级。与平常一样,应对多种设置举行测试,断定您要接纳哪种折中计划。

注重当您运转ASP历程外使用程序时(中级或初级断绝),它们在NT4中的MTS和在Windows2000中的COM+中运转。即,在NT4中它们在Mtx.exe中运转;而在Windows2000中,它们在DllHost.exe中运转。您能够在义务办理器中看到这些历程在运转。您还能够看到IIS怎样为历程外ASP使用程序设置MTS程序包或COM+使用程序。

COM选项
COM组件也有三种设置选项,固然与ASP选项不完整相似。COM组件能够是“未设置的”、设置为库使用程序或设置为服务器使用程序。“未设置的”意义是指组件没有注册COM+。组件将在挪用程序的历程空间运转,那就是说,它们是“历程内的”。库使用程序也是历程内的,但利用COM+的服务,包含平安、事件和高低文撑持。服务器使用程序被设置为在它们自有的历程空间内运转。

您能够看到未设置的组件比库使用程序略有一些上风。库使用程序比服务器使用程序的功能长处更年夜。这是由于库使用程序与ASP在统一历程内运转,而服务器使用程序在它们的自有历程内运转。历程间的挪用比历程内挪用开支更年夜。并且,当在历程之间传送诸如纪录集之类的数据时,必需在两个历程之间复制一切的数据。

圈套!当利用COM服务器使用程序时,假如您在ASP和COM之间传送工具,要确保工具实行“按值搜集”或MBV。实行MBV的工具将它们本人从一个历程复制到另外一个历程。这比上面一种办法好,接纳这类办法时,工具仍在创立者的历程中,别的一个历程重复地挪用创立历程以利用该工具。割断毗连的ADO纪录集将“按值搜集”,毗连的纪录集则否则。Scripting.Dictionary不实行MBV,且不在历程之间传送。最初,VB程序员请注重:MBV欠亨过传送参数ByVal取得。MBV由原始的组件作者实行。

怎样办?
假如让我们倡议一个分身功能与牢靠性的公道设置,它们应是以下的设置:

在IIS4.0中,利用ASP低断绝级别,利用MTS服务器程序包。
在IIS5.0上,利用ASP的中断绝级,并利用COM+库使用程序。
这些长短常一样平常的准绳,主机服务公司一样平常情形下以中或高断绝级运转ASP,而单用处的Web服务器能够以低断绝级运转。权衡各类利害,并本人决意哪一个设置更能切合您的必要。

技能10:利用显式选项
在.asp文件中应利用OptionExplicit。此指令放在.asp文件的最下面,它强迫开辟职员声明要利用到的一切变量。很多程序员以为这类办法关于调试使用程序很有匡助,由于这类办法制止了键错变量名和误建新变量的大概性(比方,将MyXMLString=)错写成MyXLMString=...。

更主要的一点大概是,声明的变量比未声明的变量速率更快。由此,剧本在运转时每次用到未声明的变量时,按称号援用它。另外一方面,声明的变量是有按次的,要末以编译工夫,要末以运转工夫。今后,声明的变量都按此按次援用。由于OptionExplicit强迫变量声明,它能确保声明一切变量,因而会见的速率也很快。

技能11:在子例程和函数中利用部分变量
部分变量是那些在子例程和函数内声明的变量。在函数或子例程内,部分变量会见比全局变量会见更快。部分变量的利用也会使代码更明晰,因而应只管利用部分变量。

技能12:将常常利用的数据复制到剧本变量中
当会见ASP中的COM工具时,应将常常利用的工具数据复制到剧本变量中。如许做可削减COM办法挪用,由于COM办法挪用与会见剧本变量比拟,开支绝对较年夜。当会见Collection和Dictionary工具时,这类手艺也会削减开支很年夜的查找。

一样平常来讲,假如您盘算不止一次会见工具数据,那末就应将数据放到剧本变量中。这类优化的次要方针是Request变量(Form和QueryString变量)。比方,您的站点可传送一个名为UserID的QueryString变量。假定此UserID在特定页面上被援用12次。能够不必挪用Request(?UserID?)12次,而是在ASP页面最下面将UserID指派到一个变量。然后在该页面自始至终利用该变量。如许就省往了11次COM办法挪用。

实践上,会见COM属性或办法的开支并没有那末年夜。上面举一个例子,申明某相称罕见的代码(从语法上讲):

Foo.bar.blah.baz=Foo.bar.blah.qaz(1)
IfFoo.bar.blah.zaq=Foo.bar.blah.abcThen...


当此代码运转时,上面是产生的情形:

变量Foo被剖析为全局工具。
变量bar被剖析为Foo的成员。这实践就是一次COM办法挪用。
变量blah被剖析为Foo.bar的成员。这又是一次COM办法挪用。
变量qaz被剖析为foo.bar.blah的成员。没有错,这仍是一次COM办法挪用。
挪用Foo.bar.blah.quaz(1)。再一次COM办法挪用。懂了吗?
再次实行步骤1至步骤3以剖析baz。体系其实不晓得挪用qaz是不是改动工具模子,因而必需再次实行步骤1至3以剖析baz。
将baz剖析为Foo.bar.blah的成员。付与属性。
再次实行步骤1至步骤3以剖析zaq。
再次实行步骤1至步骤3以剖析abc。
正如您可看到的,效力相称差(且慢)。以VBScript写此代码的疾速办法是:

Setmyobj=Foo.bar.blahdotheresolutionofblahONCE
Myobj.baz=myobj.qaz(1)
IfMyobj.zaq=Myobj.abcThen...


假如您利用VBScript5.0或更高版本,您可使用With语句写此代码:

WithFoo.bar.blah
.baz=.qaz(1)
If.zaq=.abcThen...
...
EndWith


注重此技能也合用于VB程序计划。

技能13:制止从头断定数组的维数
应只管制止Redim数组。就功能而言,假如盘算机的物理内存巨细无限,最好将数组的初始维数设置为其最倒霉的情形-或将维数设置为其最好的情形,然后再按必要从头断定维数。这并不是意味着,假如晓得您不必要内存时,就任意分派几兆字节的内存。

上面的代码给您显现利用Dim和Redim</p>ASP脚本是采用明文(plaintext)方式来编写的。
老尸 该用户已被删除
沙发
发表于 2015-1-19 15:33:07 | 只看该作者
ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp),它可以看作是VC和Java的混合体吧。
兰色精灵 该用户已被删除
板凳
发表于 2015-1-24 12:53:51 | 只看该作者
作为IE上广为流传的动态网页开发技术,ASP以它简单易学博得了广大WEB程序爱好这的青睐,而且它对运行环境和开发品台的不挑剔,以及有大量有效的参考手册,极大的推广了它的发展。
冷月葬花魂 该用户已被删除
地板
发表于 2015-2-1 13:47:45 | 只看该作者
不是很难但是英文要有一点基础网上的教程很少有系统的详细的去买书吧,另不用专门学习vb关于vbscript脚本在asp教材都有介绍
乐观 该用户已被删除
5#
发表于 2015-2-7 06:26:29 | 只看该作者
你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。
只想知道 该用户已被删除
6#
发表于 2015-2-20 20:22:07 | 只看该作者
Session:这个存储跟客户端会话过程的数据,默认20分钟失效
admin 该用户已被删除
7#
发表于 2015-3-6 18:46:58 | 只看该作者
哪些内置对象是可以跳过的,或者哪些属性和方法是用不到的?
分手快乐 该用户已被删除
8#
发表于 2015-3-13 06:03:53 | 只看该作者
ASP也是这几种脚本语言中最简单易学的开发语言。但ASP也是这几种语言中唯一的一个不能很好支持跨平台的语言。  因为ASP脚本语言非常简单,因此其代码也简单易懂,结合HTML代码,可快速地完成网站的应用程序。
变相怪杰 该用户已被删除
9#
发表于 2015-3-20 13:59:19 | 只看该作者
从事这个行业,那么你可以学ASP语言,简单快速上手,熟练dreamweav排版,写asp代码,熟练photoshop处理图片,打好基础就行了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-9-21 13:57

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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