程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> ASP入門教程 >> ASP講座之十一:結束語——給您一些建議

ASP講座之十一:結束語——給您一些建議

編輯:ASP入門教程
一、 有關ASP頁面及代碼的優化
1.盡量用!--#include file指令替代框架結構。
以前比較流行的一種設計模式就是使用一個框架(Frame)放置網站的目錄結構,在另外的框架中顯示內容,這樣的設計思路是必不可少的,但卻會影響到網站性能。在具體實現方式上,完全可使用!--#include file指令來設計一個導航條,至於include的使用,早在講座一中就已經舉例說明。

2.盡量不要讓來訪者在毫無變化的等待中消磨時光。
不要使用這樣的方式,先進行處理,然後再將處理結果輸出到頁面,造成在處理的這段時間內,客戶端頁面沒有任何變化。一個再有耐心的人也會因此而感到無比懊惱,應該盡量采用邊處理,邊輸出的方式。其實我們在講座八中介紹的分頁顯示技術就是這個道理,下面再舉一個例子。
代碼一(先處理後顯示):
<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變量,尤其是在頁面之間使用Session變量。
   使用會話變量會降低效率,原因在於不僅需要為每位訪問者創建一個變量,而且直到訪問者離開20分鐘後(默認Timeout設置),會話變量所占內存才會被釋放。

4.不要盲目使用數據庫。
初學者往往對數據庫有所心得之後,動不動便使用數據庫,一來可以溫故,二來展示一下自己的數據庫技術。我的建議是可以用別的方法時最好少使用數據庫,訪問數據庫總要消耗服務器資源。例如你可以使用文本文件,此外,對一些不大改變而又經常使用的數據,可使用application對象將數據存放在數組變量中,從內存中獲取數據要比從數據庫中快得多。

5.使用Option Explicit強制聲明變量。這可以提高ASP腳本執行效率,並且減少腳本出錯的可能性,應該養成一個良好的習慣。

6.盡可能使用用Dim定義的局部變量。訪問局部變量比訪問全局變量或未聲明的變量要快得多。

7.HTML代碼和ASP代碼最好不要頻繁交叉,盡量使ASP代碼或Html代碼連成片,以提升腳本運行效率(這跟打游戲的道理差不多)。
如果你是在代碼中的好幾個地方用<%=...%>格式書寫輸出結果,那麼考慮一下把這些結果合到一塊,用一個Response.Write語句寫出來,如講座二中的例wuf9.ASP。不要把Html代碼和VBScript腳本散布得太開,盡量寫成成塊的Html和vbscript腳本。

8.適當使用絕對路徑
如果可能的話盡量避免使用相對路徑,而使用絕對路徑。使用相對路徑將需要IIS返回當前服務器路徑,這就意味著對IIS的特殊請求造成執行速度低下。不過話說回來,慢是慢了點,然而使用相對路徑可以大大增強程序的靈活性和可移植性,關鍵在於恰當的處理這對矛盾。

9.ASP腳本性能測試
你可以使用一些工具軟件測試你的ASP腳本執行所花時間,尤其是覺得該腳本有問題時。這裡提供幾個,具體用法請看幫助。
(1) Microsoft的InetMonitor工具:用來監控和測試整個網站的處理能力。下載地址:http://www.microsoft.com/siteserver/site/DeployAdmin/InetMonitor.htm。
(2) Microsoft的Web Capacity AnalysisTool(WCAT)。包含在Microsoft BackOffice Resource Kit光盤中,或者也可以去Microsoft網站下載。
(3) Softwing的ASP PRofiling Component,下載地址:http://www.softwing.com/IISdev/profiler/。

二、 有關數據庫性能的優化
1.用直接將數據庫綁定到OLE DB的驅動程序,而不通過ODBC。關於這一點,詳見講座六。

2.盡量使用系統默認的游標(CursorType)和上鎖(LockType)類型,尤其要避免使用動態游標。

3.適當使用存儲過程。存儲過程比查詢字符串的效率高,使用起來要方便得多,好處多多。

4.及時釋放資源,例如盡早的釋放對象、關閉連接等。

5.數據庫性能測試
(1) 測試SQL查詢的速度,可以使用Microsoft Isql/w(Microsoft SQL Server6.5)或Microsoft Query Analyzer(Microsoft SQL Server7.0),它們可顯示執行的每個步驟及所需時間。
(2) Microsoft SQL Server7.0的Profiler,可以跟蹤對數據庫服務器上執行的查詢的監控。例如,可以跟蹤記錄運行最慢的查詢或是最經常導致數據庫死鎖的查詢。

三、 另外幾個問題
1.其他可選的ASP開發平台
此前我們所講的ASP腳本均是在Microsoft系列平台上創建的,除此以外,你還可以選擇Chili!ASP來運行ASP,它的突出優點是在Windows NT和Unix平台上均可以使用。主頁地址:http://www.chilisoft.com/。

2.關於<% @language=VBScript%> 
此前我們所遇到的所有ASP腳本,開頭第一行代碼基本上都是<% @Language = VBScript%>,這表明這一頁的ASP腳本所使用的腳本語言為VBScript,實際上,在ASP中還可以使用JScript、PerlScript等其他腳本語言。
在ASP中,你可以設定整個Web站點使用一種腳本語言(如VbScript,這也是IIS的缺省設置),而對某一個特定頁面使用另一種腳本語言(如JScript),甚至於對某一個頁面的某一個函數使用另一種腳本語言。下面我們舉一個實例:
(1) 如何設定整個Web站點所使用的腳本語言。
運行ISM(Internet Service Manager)→右鍵擊網站名,選擇PropertIEs→選擇Home Directory選項卡→單擊Configuration按鈕→選擇Application Configuration對話框中的App Options選項卡→在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("再見!")
}
</SCRIPT>

<SCRIPT LANGUAGE="VBScript" RUNAT="Server">
For I=1 to 3
saybye()
Next
</SCRIPT>

</Body>
</Html>
注意:你可以在ASP中自由的使用VBSript或JScript,因為Microsoft支持這兩種(IE支持Netscape的JavaScript,並將其發展為JScript,而NetScape卻不支持VBScript,這恐怕也是NetScape先發後至,Microsoft官司纏身的原因之一),但是要使用PerlScript,必須另外安裝Perl腳本語言環境。推薦使用ActivePerl,在Windows NT上安裝非常方便,下載地址:http://www.newhua.com.cn/activeperl.htm。

3.一個不錯的ASP設計實例
網上有很多ASP的實例,主要集中在留言本、聊天室、新聞發布和BBS等,這裡向大家推薦一個用ASP設計的BBS系統——Free BBS,下載地址為:http://free_bbs.soim.Net/。

到這裡,ASP系列講座就要告一段落了,但仍然還有很多問題沒有涉及,如Windows2000與IIS5.0、ASP的安全問題以及其他一些與IIS或NT有關的概念(Windows DNA、MTS、MSMQ)等等……,如果有機會,以後大家還可在這裡見面,這一次,再見!
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved