ASP网页编程之最优化ASP程序功能(转)
因为现在数据库都使用标准的SQL语言对数据库进行管理,所以如果是标准SQL语言,两者基本上都可以通用的。SQLServer还有更多的扩展,可以用存储过程,数据库大小无极限限制。程序|功能|优化 ActiveServerPages可让静态页面很快地实行,可是,在代码中和数据库的毗连上到场一些技能,就可以让程序更快地实行。这是一篇关于怎样精制剧本程序和ASP特性来到达最年夜速率的文章。任安在用户点击按钮到在屏幕上呈现了局间提早城市让用户茫然,关于一个贸易站点,这就意味着潜伏的用户丧失。ASP剧本的尺寸
我们大概不克不及把持用户的带宽,可是经由过程优化ASP站点,我们切实其实可以使使用到达最好功能。很多潜伏的功能劳绩能够经由过程体系调剂,而不是改动代码。
要素
起首,有哪些要素大概影响ASP程序的功能?很不幸,有很多吗?这里仅仅是一些:
无限的带宽
服务器真个处置器和其他硬件的速率
在服务器上运转的其他历程(好比那些OpenGL屏幕回护程序中的一个)
数据库毗连形式,毗连池,大概独自的数据库(好比Oracle、SQLServer、Access)
利用的言语
存储历程和SQL
利用未编译组件,而不是VB大概JavsScript的ASP
优秀的编程习气,好比对毛病的处置
关于一个有履历的具有优秀IIS常识的开辟者来讲,以上一些特性是很寻常的,可是别的一些大概十分庞大。在这篇文章中,让我们来研讨一下怎样做才干节俭毫秒级其余工夫,而不是试图八面玲珑。
你的ASP剧本程序关于完成的功效是不是显得太长?这就会从入手下手影响程序的功能。关于搜集信息和格局化输入,ASP剧本长短常有效的,可是剧本是依照行来注释实行的,以是代码越长,实行工夫越长。
假如有一个很长的ASP剧本程序,怎样才干削减长度呢?这里有一些倡议。
你能够将它们转换为服务器端组件,换言之,就是创立一个VisualBasicDLL文件,大概利用任何古代的Windows程序言语和COM兼容言语来创建一个未编译组件,而且在服务器上注册。关于这个功效的教程请参阅http://www.webdevelopersjournal.com/articles/activex_for_asp.html。一个编写很好的ActiveX组件不但能年夜幅度进步速率,并且,它还能年夜年夜地进步你的软件的回护水平,出格是你为第3方开辟ASP程序时。
由于剧本是一行行注释实行的,以是扫除过剩的剧本大概创建无效率的剧本,就可以进步程序功能。假如在一个单一页面中有成百行的ASP剧本,你便可能很好地将程序支解成用户、贸易和数据服务部分。实践上,假如这么做了,你就会发明一些过剩的代码。好比,假如必要显现几个表格,就能够编写一个通用的表格显现函数,如许,在必要的中央挪用就能够了。
与尺寸相干的别的一个成绩就是包括文件的长度。当实行一个#include文件时,全部文件都被调进,就象在被包括的文件中存在一样。以是,假如有一个甬余的包括文件,个中包括了很多全局办法和变量界说,那末就请注重它们将被调进每个包括它们的文件中,而不论是否可用。ASP缓存了一切的扩大代码,招致了效力低下的搜刮。在这类情形下,包括文件必需变小。只管包括文件被服务器处置为独自的哀求,可是过量的利用#include,就会招致下载工夫的过分增添。
<!--#includefile="Header.asp"-->
<!--#includefile="Footer.asp"-->
<SCRIPTlanguage="vbscript"runat="server">
SubMain()
WriteHeader
WriteBody
WriteFooter
EndSub
SubWriteBody()
...
EndSub
MaincallsubMain
</SCRIPT>
假如剧本很长,注重要利用Response.IsClientConnected命令,这将制止因客户端不再毗连时CPU华侈运转轮回。
<%
checktoseeiftheclientisconnected
IfNotResponse.IsClientConnectedThen
stillconnectedsoproceed
Else
disconnected
EndIf
%>
分离ASP代码和HTML言语命令
有人这么做吗?当形貌表格时,在ASP和HTML举行切换,好比:
<HTML>
<BODY>
<%
SetMyConn=Server.CreateObject("ADODB.Connection")
MdbFilePath=Server.MapPath("sample.mdb")
MyConn.Open"Driver={MicrosoftAccessDriver(*.mdb)};DBQ="&MdbFilePath&";"
SQL_query="SELECT*FROMFriends"
SetRS=MyConn.Execute(SQL_query)
WHILENOTRS.EOF
%>
<LI><%=RS("Name")%>:<AHREF="<%=RS("Link")%>">Homepage</A>
<%
RS.MoveNext
WEND
%>
</BODY>
</HTML>
别的一个例子是利用If命令:
<%
IfNotSession("DBOpen")Then
%>
<H1>Databasenotconnected</H1>
<%
Else
%>
<H1>Databaseopen</H1>
<%
EndIf
%>
在以上2个例子中,剧本功能能经由过程坚持ASP程序块在服务器端和利用Response.Write来发生HTML代码来进步功能,就象上面一样:
<%
IfnotSession("DBOpen")Then
Response.Write"<H1>Databasenotconnected</H1>"
Else
Response.Write"<H1>Databaseopen</H1>"
EndIf
%>
关于年夜且长的剧本,你能够经由过程下面的办法看到分明的功能进步。
会话形态
无庸置疑,经由过程session在ASP中坚持形态是一个十分主要的特性。但是,这将影响程序的功能。很分明,服务器的伸缩性由于session仅仅能范围于单一服务器而酿成一个成绩,一个session为每个用户都要损耗资本。
假如不利用session变量,并且实践上也大概不必要,由于利用埋没表单域、在数据库中存储数值和利用查询字符串能够完成session的功效,这时候,就应当屏障session形态,代码以下:
@EnableSessionState=False
如许,ASP就将不再反省session信息。
假如的确要依托session形态,那末请制止在session工具中寄存大批的数据。假如设置了客户真个HTTPCookies,那末IIS中的Session是失效的,而且直到session被中断大概到期,为每个session分派的内存空间将一向保存。因为这个缘故原由,当有很多并发用户会见站点时,资本将会很快耗尽。
</p>在实现ERP等高端的ASP应用时,用户需要提供核心的经营资料,需要ASP商有很高的信用度。楼上说交互性不好,太牵强了吧。在微软提供的一套框架中,利用asp做网站,开发效率高,使用人数少,减少不必要的开销。交互性是互动方式,是有开发人员决定的。 多看多学多思。多看一些关于ASP的书籍,一方面可以扩展知识面一方面可以鉴借别人是如何掌握、运用ASP的;多学善于关注别人,向同学老师多多学习,不论知识的大小;多思则是要将学到的知识灵活运用。 代码的可重用性差:由于是面向结构的编程方式,并且混合html,所以可能页面原型修改一点,整个程序都需要修改,更别提代码重用了。 ASP的语言不仅仅只是命令格式差不多,而是包含在<%%>之内的命令完全就是VB语法。虽然ASP也是做为单独的一个技术来提出的,但他就是完全继承了VB所有的功能。 我想问如何掌握学习节奏(先学什么再学什么)最好详细点? 哪些内置对象是可以跳过的,或者哪些属性和方法是用不到的? 交流是必要的,不管是生活还是学习我们都要试着去交流,通过交流我们可以学到很多我们自己本身所没有的知识,可以分享别人的经验甚至经历。 兴趣爱好,那么你无须学编程,申请一个域名和空间,在网上下载一些免费开源的CMS系统,你不用改代码,只须熟悉它们的后台操作,像office一样简单方便,很快就能建一个站点,很多站长都是这样做的 封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变,业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高。 我认为比较好的方法是找一些比较经典的例子,每个例子比较集中一种编程思想而设计的。
页:
[1]