|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
想法是和程序员的想法不一样的.至于为什么.大家去想一想.跟心理学有关的程序|技能|优化 本文将向人人先容四则优化ASP使用程序的技能。
<P> 1.将常常利用的数据缓存在Application或Session工具中 ASP的Application和Session工具为将数据暂存在内存中供应了便利的容器。你能够将数据指派到Application和Session工具中,这些数据在HTTP挪用之前保存在内存中。Session数据是按每一个用户分离存储的,而Application数据则在一切用户之间共享。
甚么时分将数据装载到Application或Session中呢?一般,数据是在启动Application或Session古装载。要在Application或Session启动过程当中装载数据,应将得当的代码分离增加到Application_OnStart()或Session_OnStart()中。这些函数应当在Global.asa中,假如没有,我们可手工增加进这些函数。还能够在第一次必要古装载该数据。为此,在ASP页中增加一些代码(或编写一个可反复利用的剧本函数),以反省数据是不是存在,假如不存在,就装载数据。这是一个传统进步功能的手艺,称为“惰性盘算”,即在你晓得必要某一个值之前不盘算该值。程序举比方下:
<%
FunctionGetEmploymentStatusList
Dimd
d=Application(?EmploymentStatusList?)
Ifd=??Then
FetchEmploymentStatusListfunction(notshown)
fetchesdatafromDB,returnsanArray
d=FetchEmploymentStatusList()
Application(?EmploymentStatusList?)=d
EndIf
GetEmploymentStatusList=d
EndFunction
%>
我们能够为所必要的每一个数据块编写相似的函数。
<P> 2.将代码封装在COM工具中
假如你的Web使用程序中有很多VBScript或JScript代码,你能够常常将代码移到编译的COM工具中,从而可改良功能。将代码封装在COM工具中另有一些除进步功能以外的其他长处:
(1)COM工具有益于将暗示逻辑与营业逻辑分隔;
(2)COM工具能够包管代码反复利用;
(3)用VB、VC++或VisualJ++编写的代码比ASP更简单调试。
COM工具也出缺点,包含初始化工夫长和必要分歧的程序计划技能。值得注重的是,在大批ASP代码被封装进COM工具时,大概不会使功能有所改善,反而会引发功能下落。这类情形一般是创立和挪用COM工具的体系开支凌驾了编译代码的体系开支。因而,我们必要重复地实验,以断定甚么样的ASP剧本和COM工具代码的组合能够发生最好的功能。
3.处置内嵌剧本和Response.Write语句
VBScript语法的<%=expression%>是将“expression”的值写到ASP输入流中。假如呼应缓冲未启用,那末实行个中的每条语句城市以很多小的数据包经由过程收集将数据写到扫瞄器中。如许,实行速率很慢,并且交叉实行大批的剧本和HTML,将会引发剧本引擎和HTML之间的切换,从而极年夜地下降了功能。因而,我们可使用上面的技能,即便用Response.Write挪用取代绑缚严密的内嵌表达式。
比方,鄙人面的示例中,在每行的每字段对呼应流有一次写操纵,每行在VBScript和HTML之间有屡次切换:
<table>
<%ForEachfldinrs.Fields%>
<th><%=fld.Name%></th>
<%
Next
WhileNotrs.EOF
%>
<tr>
<%ForEach
fldinrs.Fields%>
<td><%=fld.Value%></td>
<%Next
</tr>
<%rs.MoveNextWend%>
</table>
为了使下面的代码运转效力更高,我们能够使用上面的代码,代码的每行对呼应流有一次写操纵,一切的代码都包括在一个VBScript程序内:
<%
Response.Write(?<table>?)
Foreachfldinrs.Fields
Response.Write(?<th>?&&fld.Name&&?</th>?&&vbCrLf)
Next
WhileNotrs.EOF
Response.Write(?<tr>?)
ForEachfldinrs.Fields%>
Response.Write(?<td>?&&fld.Value&&?</td>?&&vbCrLf)
Next
Response.Write(?</tr>?)
Wend
Response.Write(?</table>?)
%>
当禁用呼应缓冲时,这一技能的效果出格分明。最好启用呼应缓冲,然后看批处置Response.Write是不是有助于进步功能。
4.制止从头断定数组的维数
在使用数组时,我们应只管制止利用Redim数组。就功能而言,假如盘算机的物理内存巨细无限,最好将数组的初始维数设置为其最倒霉的情形,大概将维数设置为其最好的情形,然后再按必要从头断定维数。
在开辟ASP的Web使用程序过程当中,充实使用以上技能会使你的Web程序具有较高的实行功能。
ASP在国内异常流行,因为国内大多使用的是盗版的Windows和盗版的SQLServer,而ASP+COM+SQLServer实际上也是一种不错的搭配,其性能也不输于PHP+MYSQL,特别是Windows系统和SQLServer都有图形界面,比APACHE和MYSQL易于维护,因此对于不重视知识产权的国家来说也是一种不错的选择。 |
|