最新ASP講座之11:結(jié)束語(yǔ)——給您一些建議
發(fā)表時(shí)間:2023-08-09 來(lái)源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]一、 有關(guān)ASP頁(yè)面及代碼的優(yōu)化1.盡量用!--#include file指令替代框架結(jié)構(gòu)。以前比較流行的一種設(shè)計(jì)模式就是使用一個(gè)框架(Frame)放置網(wǎng)站的目錄結(jié)構(gòu),在另外的框架中顯示內(nèi)容,這樣的...
一、 有關(guān)ASP頁(yè)面及代碼的優(yōu)化
1.盡量用!--#include file指令替代框架結(jié)構(gòu)。
以前比較流行的一種設(shè)計(jì)模式就是使用一個(gè)框架(Frame)放置網(wǎng)站的目錄結(jié)構(gòu),在另外的框架中顯示內(nèi)容,這樣的設(shè)計(jì)思路是必不可少的,但卻會(huì)影響到網(wǎng)站性能。在具體實(shí)現(xiàn)方式上,完全可使用!--#include file指令來(lái)設(shè)計(jì)一個(gè)導(dǎo)航條,至于include的使用,早在講座一中就已經(jīng)舉例說(shuō)明。
2.盡量不要讓來(lái)訪者在毫無(wú)變化的等待中消磨時(shí)光。
不要使用這樣的方式,先進(jìn)行處理,然后再將處理結(jié)果輸出到頁(yè)面,造成在處理的這段時(shí)間內(nèi),客戶(hù)端頁(yè)面沒(méi)有任何變化。一個(gè)再有耐心的人也會(huì)因此而感到無(wú)比懊惱,應(yīng)該盡量采用邊處理,邊輸出的方式。其實(shí)我們?cè)谥v座八中介紹的分頁(yè)顯示技術(shù)就是這個(gè)道理,下面再舉一個(gè)例子。
代碼一(先處理后顯示):
<table width=”100”>
<% while not rs.eof %>
<tr>
<td><%=rs(“name”)%></td>
<td><%=rs(“email”)%></td>
</tr>
<% rs.movenext
wend %>
</table>
代碼二(邊處理邊顯示,處理一條,顯示一條):
<% while not rs.eof %>
<table width=”100” border=0>
<tr>
<td><%=rs(“name”)%></td>
<td><%=rs(“name”)%></td>
</tr>
</table>
<% rs.movenext
wend %>
3.避免使用Session變量,尤其是在頁(yè)面之間使用Session變量。
使用會(huì)話變量會(huì)降低效率,原因在于不僅需要為每位訪問(wèn)者創(chuàng)建一個(gè)變量,而且直到訪問(wèn)者離開(kāi)20分鐘后(默認(rèn)Timeout設(shè)置),會(huì)話變量所占內(nèi)存才會(huì)被釋放。
4.不要盲目使用數(shù)據(jù)庫(kù)。
初學(xué)者往往對(duì)數(shù)據(jù)庫(kù)有所心得之后,動(dòng)不動(dòng)便使用數(shù)據(jù)庫(kù),一來(lái)可以溫故,二來(lái)展示一下自己的數(shù)據(jù)庫(kù)技術(shù)。我的建議是可以用別的方法時(shí)最好少使用數(shù)據(jù)庫(kù),訪問(wèn)數(shù)據(jù)庫(kù)總要消耗服務(wù)器資源。例如你可以使用文本文件,此外,對(duì)一些不大改變而又經(jīng)常使用的數(shù)據(jù),可使用Application對(duì)象將數(shù)據(jù)存放在數(shù)組變量中,從內(nèi)存中獲取數(shù)據(jù)要比從數(shù)據(jù)庫(kù)中快得多。
5.使用Option Explicit強(qiáng)制聲明變量。這可以提高ASP腳本執(zhí)行效率,并且減少腳本出錯(cuò)的可能性,應(yīng)該養(yǎng)成一個(gè)良好的習(xí)慣。
6.盡可能使用用Dim定義的局部變量。訪問(wèn)局部變量比訪問(wèn)全局變量或未聲明的變量要快得多。
7.HTML代碼和ASP代碼最好不要頻繁交叉,盡量使ASP代碼或HTML代碼連成片,以提升腳本運(yùn)行效率(這跟打游戲的道理差不多)。
如果你是在代碼中的好幾個(gè)地方用<%=...%>格式書(shū)寫(xiě)輸出結(jié)果,那么考慮一下把這些結(jié)果合到一塊,用一個(gè)Response.Write語(yǔ)句寫(xiě)出來(lái),如講座二中的例wuf9.asp。不要把HTML代碼和VBScript腳本散布得太開(kāi),盡量寫(xiě)成成塊的HTML和vbscript腳本。
8.適當(dāng)使用絕對(duì)路徑
如果可能的話盡量避免使用相對(duì)路徑,而使用絕對(duì)路徑。使用相對(duì)路徑將需要IIS返回當(dāng)前服務(wù)器路徑,這就意味著對(duì)IIS的特殊請(qǐng)求造成執(zhí)行速度低下。不過(guò)話說(shuō)回來(lái),慢是慢了點(diǎn),然而使用相對(duì)路徑可以大大增強(qiáng)程序的靈活性和可移植性,關(guān)鍵在于恰當(dāng)?shù)奶幚磉@對(duì)矛盾。
9.ASP腳本性能測(cè)試
你可以使用一些工具軟件測(cè)試你的ASP腳本執(zhí)行所花時(shí)間,尤其是覺(jué)得該腳本有問(wèn)題時(shí)。這里提供幾個(gè),具體用法請(qǐng)看幫助。
(1) Microsoft的InetMonitor工具:用來(lái)監(jiān)控和測(cè)試整個(gè)網(wǎng)站的處理能力。下載地址:http://www.microsoft.com/siteserver/site/DeployAdmin/InetMonitor.htm。
(2) Microsoft的Web Capacity AnalysisTool(WCAT)。包含在Microsoft BackOffice Resource Kit光盤(pán)中,或者也可以去Microsoft網(wǎng)站下載。
(3) Softwing的ASP Profiling Component,下載地址:http://www.softwing.com/iisdev/profiler/。
二、 有關(guān)數(shù)據(jù)庫(kù)性能的優(yōu)化
1.用直接將數(shù)據(jù)庫(kù)綁定到OLE DB的驅(qū)動(dòng)程序,而不通過(guò)ODBC。關(guān)于這一點(diǎn),詳見(jiàn)講座六。
2.盡量使用系統(tǒng)默認(rèn)的游標(biāo)(CursorType)和上鎖(LockType)類(lèi)型,尤其要避免使用動(dòng)態(tài)游標(biāo)。
3.適當(dāng)使用存儲(chǔ)過(guò)程。存儲(chǔ)過(guò)程比查詢(xún)字符串的效率高,使用起來(lái)要方便得多,好處多多。
4.及時(shí)釋放資源,例如盡早的釋放對(duì)象、關(guān)閉連接等。
5.數(shù)據(jù)庫(kù)性能測(cè)試
(1) 測(cè)試SQL查詢(xún)的速度,可以使用Microsoft Isql/w(Microsoft SQL Server6.5)或Microsoft Query Analyzer(Microsoft SQL Server7.0),它們可顯示執(zhí)行的每個(gè)步驟及所需時(shí)間。
(2) Microsoft SQL Server7.0的Profiler,可以跟蹤對(duì)數(shù)據(jù)庫(kù)服務(wù)器上執(zhí)行的查詢(xún)的監(jiān)控。例如,可以跟蹤記錄運(yùn)行最慢的查詢(xún)或是最經(jīng)常導(dǎo)致數(shù)據(jù)庫(kù)死鎖的查詢(xún)。
三、 另外幾個(gè)問(wèn)題
1.其他可選的ASP開(kāi)發(fā)平臺(tái)
此前我們所講的ASP腳本均是在Microsoft系列平臺(tái)上創(chuàng)建的,除此以外,你還可以選擇Chili!ASP來(lái)運(yùn)行ASP,它的突出優(yōu)點(diǎn)是在Windows NT和Unix平臺(tái)上均可以使用。主頁(yè)地址:http://www.chilisoft.com/。
2.關(guān)于<% @language=VBScript%>
此前我們所遇到的所有ASP腳本,開(kāi)頭第一行代碼基本上都是<% @Language = VBScript%>,這表明這一頁(yè)的ASP腳本所使用的腳本語(yǔ)言為VBScript,實(shí)際上,在ASP中還可以使用Jscript、PerlScript等其他腳本語(yǔ)言。
在ASP中,你可以設(shè)定整個(gè)Web站點(diǎn)使用一種腳本語(yǔ)言(如VbScript,這也是IIS的缺省設(shè)置),而對(duì)某一個(gè)特定頁(yè)面使用另一種腳本語(yǔ)言(如Jscript),甚至于對(duì)某一個(gè)頁(yè)面的某一個(gè)函數(shù)使用另一種腳本語(yǔ)言。下面我們舉一個(gè)實(shí)例:
(1) 如何設(shè)定整個(gè)Web站點(diǎn)所使用的腳本語(yǔ)言。
運(yùn)行ISM(Internet Service Manager)→右鍵擊網(wǎng)站名,選擇Properties→選擇Home Directory選項(xiàng)卡→單擊Configuration按鈕→選擇Application Configuration對(duì)話框中的App Options選項(xiàng)卡→在Default ASP Language文本框中輸入VbScript或Jscript即可。
(2) 例程wuf99.asp
<% @Language = PerlScript %>
<Html>
<Head><Title>Bye</Title></Head>
<Body>
<%
$Response->write(
sprintf( "IP address = %s",
$Request->ServerVariables(
"REMOTE_ADDR" )->item ) );
%>
<SCRIPT LANGUAGE="JScript" RUNAT="Server">
function saybye()
{
Response.Write("再見(jiàn)!")
}
</SCRIPT>
<SCRIPT LANGUAGE="VBScript" RUNAT="Server">
For I=1 to 3
saybye()
Next
</SCRIPT>
</Body>
</Html>
注意:你可以在ASP中自由的使用VBSript或Jscript,因?yàn)镸icrosoft支持這兩種(IE支持Netscape的javascript,并將其發(fā)展為Jscript,而NetScape卻不支持VBScript,這恐怕也是NetScape先發(fā)后至,Microsoft官司纏身的原因之一),但是要使用PerlScript,必須另外安裝Perl腳本語(yǔ)言環(huán)境。推薦使用ActivePerl,在Windows NT上安裝非常方便,下載地址:http://www.newhua.com.cn/activeperl.htm。
3.一個(gè)不錯(cuò)的ASP設(shè)計(jì)實(shí)例
網(wǎng)上有很多ASP的實(shí)例,主要集中在留言本、聊天室、新聞發(fā)布和BBS等,這里向大家推薦一個(gè)用ASP設(shè)計(jì)的BBS系統(tǒng)——Free BBS,下載地址為:http://free_bbs.soim.net/。
到這里,ASP系列講座就要告一段落了,但仍然還有很多問(wèn)題沒(méi)有涉及,如Windows2000與IIS5.0、ASP的安全問(wèn)題以及其他一些與IIS或NT有關(guān)的概念(Windows DNA、MTS、MSMQ)等等……,如果有機(jī)會(huì),以后大家還可在這里見(jiàn)面,這一次,再見(jiàn)!