熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

編程高手實現ASP提速技巧五則

2013-11-13 10:14:40  來源: .NET編程 

  技巧之一提高使用Request集合的效率
  
  訪問一個ASP集合來提取一個值是費時的占用計算資源的過程因為這個操作包含了一系列對相關集合的搜索這比訪問一個局部變量要慢得多因此如果打算在頁面中多次使用Request集合中的一個值應該考慮將其存貯為一個局部變量例如將代碼寫成下面的形式以加快腳本引擎處理速度
  
  strTitle=RequestForm(Title)
  strFirstName=RequestForm(FirstName)
  strLastName=RequestForm(LastName)
  If Len(strTitle) Then strTitle=strTitle &
  If strFirstName= Then strFullName=strTitle & & strLastName
  Elseif Len(strFirstName)= Then
  strFullName=strTitle & strFirstName & & strLastName
  Else
  strFullName=strTitle & strFirstName & & strLastName
  End If
  
  技巧之二直接訪問適當的集合
  
  如果不是別無選擇否則不要使用strPage=Request(page)的這樣的形式來獲取參數因為這將按順序搜索全部的集合—QueryStringFormCookiesClientCertificateServerVarible直到發現第一個匹配值的名稱這樣做比直接訪問適當的集合效率低並且是不安全的除非能絕對保證這個值不會出現在另外一個集合中
  
  例如可能希望搜索滿足客戶請求的WEB服務器名稱這通過出現在每個查詢中的RequestServerVarables集合中尋找SERVER_NAME來實現然而假如其他的集合也包含名為SERVER_NAME的值(鍵名不區分大小寫)當使用Request(server_Name)時就會得到錯誤的結果總而言之應盡可能直接訪問適當的集合
  
  技巧之三在費時操作前使用ResponseIsClientConnected屬性
  
  使用ResponseIsClientConnected是觀察用戶是否仍連到服務器並正在載入ASP創建的網頁的有用方式如果用戶斷開連接或停止下載我們就不用再浪費服務器的資源創建網頁因為緩沖區內容將被IIS丟棄所以對那些需要大量時間計算或資源使用較多的網頁來說值得在每一階段都檢查游覽者是否已離線
  
  …… Code to create first part of the page
  If ResponseIsClientConnected Then
  ResponseFlush
  Else
  ResponseEnd
  End If
  …… Code to create next part of page
  
  技巧之四優化ASP中的ADO操作
  
  通常面言數據構成了WEB站點的實際內容所以優化ADO操作以加速ASP代碼執行十分有用
  
  a 僅選擇所需的列當打開ADO記錄集時除非需要獲得所有的列否則不應自動地使用表名(即SELECT *)使用單獨的列意味著將減少發送到服務器或從服務器取出的數據量即使需要使用全部列單獨地命名每個列也會獲得最佳的性能因為服務器不必再解釋這些列的名字
  
  b 盡可能的使用存儲過程存儲過程是預先編譯的程序含有一個已經准備好的執行計劃所以比SQL語句執行更快
  
  c 使用適當的光標和鎖定模式如果所做的全部工作只是從記錄集中讀取數據並將其顯示在屏幕上那麼就使用缺省的只能前移只讀的記錄集ADO用來維護記錄和鎖定的細節的工作越少執行的性能就越高
  
  d 使用對象變量當遍歷記錄集時一個肯定能提高性能的方法是使用對象變量指向集合中的成員例如
  
  While Not RsGcEOF
  ResponseWrite 工程名稱 & RsGc(GcMC) & (工程代碼 & RsGc(GcCode) & )
  
  RsGcMoveNext
  Wend
  
  可以用改寫為下面的代碼以加快執行
  
  set GcMc=RsGc(GcMc)
  set GcCode=RsGc(GcCode)
  While Not rsGcEOF ResponseWrite 工程名稱 & GcMc & (工程代碼 & GcCode & )
   RsGcMoveNext
  Wend
  
  新的代碼建立了對象變量的引用所以可以使用對象變量而不是實際的變量這意味著腳本引擎的工作減少了因為在集合中進行索引的次數變少了
  
  技巧五不要混用腳本引擎
  
  我們知道ASP頁面中既可以使用VBScript也可以使用JScript但是在同一個頁面上同時使用JScript和VBScript則是不可取的因為服務器必須實例化並嘗試緩存兩個(而不是一個)腳本引擎這在一定程度上增加了系統負擔因此從性能上考慮不應在同一頁面中混用多種腳本引擎
From:http://tw.wingwit.com/Article/program/net/201311/13026.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.