提高ASP應用程式的技巧

來源:互聯網
上載者:User
ASP是微軟推出的一種伺服器端命令執行環境,它可以使你輕鬆的製作互動WEB應用程式。作為目前NT平台上開發WEB伺服器的一種使用最多的技術,它的出現取代了過去只有使用CGI技術才能做的許多事情,而且ASP對於資料庫的控制簡單有效,省去了CGI的大量編程工作。

  由於ASP直接對伺服器進行操作,因此,ASP設計的技巧就顯得非常重要,不當的ASP應用程式會增加WEB伺服器的負擔,降低伺服器的效能。我總結了一年來自己ASP設計的經驗,希望能對大家有所協助,不對的地方希望大家指正。

  本文討論的主要是ASP程式的效能提升技巧,它包括兩個部分:

  * HTML頁面效能的提升技巧

  * ASP程式的反應時間提高的技巧

  下面我就分別詳細的討論一下這兩個方面。

  1. 提高HTML頁面的效能幾個技巧

  HTML頁面的效能主要和用戶端的電腦的效能有關,總的來說,主要和用戶端的電腦的硬體以及客戶所擁有的頻寬密切相關,除此之外,有幾個因素也以影響HTML頁面的效能:

  大家都知道,頁面越小,在瀏覽器中載入的時間就會越少,效能也越好。以下是減少頁面大小的幾個有用的技巧:

  (1) 減少圖象的數量:當你的頁面中含有N幅圖象的時候,你的瀏覽器就會向WEB伺服器發出N次請求,這樣就會浪費大量的時間,在頻寬比較窄的情況下尤其要避免在面中插入大量的圖象。

  (2) 減少架構的使用量:架構是另外一個降低頁面顯示速度的元素,就象圖象一樣,瀏覽器會向伺服器發出N次請求,因此,也要避免大量的架構使用。

  (3) 避免使用表格:雖然一個漂亮的頁面少不了表格,但是我們應該減少不必要表格的使用,這樣會加快頁面的載入速度。

  (4) 不要在HTML中加入注釋

  (5) 避免使用長檔名,養成使用相對路徑的習慣。

  (6) 不必要的時候,不要使用指令碼,否則會降低頁面的顯示速度。

  2. 提高ASP程式反應時間的幾個技巧

  進一步的分,提高ASP的反應時間又涉及到三個方面的內容:

  * ASP本身的效能的提升技巧

  * 網路頻寬

  * 資料庫效能的提升技巧

  下面我就分別詳細的講述一下這三個方面的內容.

  A. ASP頁面本身的效能的提升技巧

  (1)讀取物件變數總是慢於讀取本地變數,因此,應該養成把物件變數轉存到本地變數的的習慣,這樣會提高ASP的反應時間,下面的這兩個例子就是一個很好的對比:

  慢的例子:

  if Myobj.Value = 0 then

  Do 略

  elseif Myobj.Value > 0 then

  Do 略

  elseif Myobj.Value < 0 then

  Do 略

  end if

  比較快的例子:

  MyVar = Myobj.Value

  if MyVar = 0 then

  Do 略

  elseif MyVar > 0 then

  Do 略

  elseif MyVar < 0 then

  Do 略

  end if

  上面比較快的例子雖然只是作了一個小小的改動,但在效能上卻有不少的提升。


 (2)如果你正在使用的是VBScript 5.0或更高的版本,你可以使用WITH……END WITH的結構,這樣也能使ASP的效能提高不少。

  (3)一般情況下,避免使用session變數,因為每一個session變數都佔用一個線程,session調用是一個接一個的完成的。所以這樣會降低ASP的速度,你可以使用QueryString集合或者隱藏的變數來代替session變數來儲存資料。這樣會比使用session變數佔用的線程少。

  (4)如果你實在無法避免使用session變數,而且你有大量session變數,那麼你應該考慮使用字典對象。

  (5)開啟緩衝會提高ASP的效能,如在每一個ASP頁面中使用Response.Buffer=True就是一個很好的習慣,它能明顯的提高頁面的顯示速度。

  (6)把你的資料讀取的代碼打包成COM組件,你會領略到編譯和多線程給你帶來的速度上的提升。眾所周知,建立一個資料庫的串連會耗費大量的資源和時間,怎麼能解決這個問題呢?當你的組件運行在Microsoft Transaction Server (MTS)時,利用串連池能很好的解決這個問題。MTS是一個以WINDOWS NT為基礎的一項技術,當和DCOM聯合使用的時候,它允許你更好的把COM對象在網路上分布,效果比單獨使用DCOM更好。

  (7)避免多次調用COM組件,例如,如果你想向COM組件中寫入10個值,你得調用10次COM組件,如果你能只調用一次,那麼就能大大提高整體效能。

  (8)不要和application或session 範圍一起聲明象ADO連線物件這樣的COM組件,因為這些多執行緒元件的線程調用之間還得協調,因此大大降低了ASP的效能。

  (9)當你的ASP頁面中的代碼超過100行,你最好考慮將它們移植到COM組件,ASP指令碼是在啟動並執行時候解釋,而COM組件是經過編譯的。

  (10)不要使用Microsoft Word 或Excel組件來操作資料,這些組件對於ASP都是沒有經過最佳化的。

  (11)我們開發WEB應用程式的時候,總是喜歡建立一個大的include檔案包含所有的全球變數,但是這個方法的最大弊病就是並不是所有的頁面都需要這些變數,而每個頁面都要處理這些變數,因而會大大影響ASP的速度。

  (12)避免多次使用Request.Write,最好將他們整和到一個Request.Write中。

  B.網路頻寬

  (1) 盡量使用100M的網卡,這樣會大大提高ASP應用程式的反應時間。

  (2) 如果你的WEB伺服器和資料庫在同一個伺服器上,建議將它們移植到不同的資料庫上。

  (3) 建議將COM組件和MTS一起使用。

  C.資料庫的效能的提升技巧

  一種好的資料庫設計方法可以大大的提高ASP程式的效能,詳細的論述這方面的內容已經超出了本文的範圍,在此我只簡要的介紹幾個技巧。

  (1) 使用ADO Recordset的時候,注意使用cursor type 和lock type兩個屬性,例如,如果你想填充組合列表的話,應該把cursor type設為 adOpenForwardOnly並且 lock type 設為adLockReadOnly。

  (2) 有時合適的分配一些資料庫的緩衝可以很好的提高ASP的效能。例如,如果你使用Oracle作為資料庫的時候,一個串連要開三個對話,如果你能很好的降低串連的數目的話,那麼你的ASP效能將會大副提升。

  (3) 注意使用正確的資料庫查詢語句,範圍過大的查詢動作會浪費大量的時間,因此一定要想方設法縮減查詢範圍,提高查詢速度。

  本文到此就寫完了,我再次聲明一下,如果文章中有不對的地方,懇請大家回信指正,也希望廣大的ASP愛好者來信互相切磋。



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.