改善ASP效能和外觀的技巧集錦(轉自電腦世界)(三)

來源:互聯網
上載者:User
技巧|效能 技巧 19: 利用瀏覽器的驗證功能
現今的瀏覽器對一些進階功能如 XML、DHTML、Java Applet和遠端資料服務提供支援。儘可能使用這些功能。所有這些技術都可以執行客戶機端驗證和資料緩衝,免去了到 Web 服務器的往返。如果您在運行一個智能瀏覽器,那麼瀏覽器就能為您進行一些驗證(例如,在執行 POST 之前,檢查信用卡校正和是否有效)。儘可能使用這一功能。通過減少客戶-伺服器之間的往返,可降低 Web 服務器上的負載,並能減少網路通訊量(雖然發送到瀏覽器的第一個頁面可能比較大)以及伺服器訪問的任何後端資源。此外,使用者不必像住常一樣讀取新頁,從而使用者的感覺會好一些。這樣做並不意味著您可以不進行伺服器端驗證 - 您還應始終進行伺服器端驗證。這可以防止由於某種原因(如駭客,或瀏覽器不運行客戶機端驗證常式)客戶機產生錯誤的資料。人們已經進行了大量的工作,開發“獨立於瀏覽器”的 HTML。正是由於這種憂慮,開發人員不願再使用流行的瀏覽器功能,但這些功能本可以改善效能。對於一些真正的高效能網站,必須關心瀏覽器“訪問”問題,一個好的策略是最佳化頁面,使其適應流行的瀏覽器。使用瀏覽器功能組件,可以在 ASP 中方便地檢測到瀏覽器功能。Microsoft FrontPage 等工具有助於設計適合於瀏覽器和指定 HTML 版本的代碼。參見 When is Better Worse?Weighing the Technology Trade-Offs,以瞭解更進一步的討論。
技巧 20:避免在迴圈語句中使用字串串聯
許多人在迴圈語句中建立一個字串,如下所示:
s = ?<table>? & vbCrLf
For Each fld in rs.Fields
s = s & ? <th>? & fld.Name & ?</th> ?
Next
While Not rs.EOF
s = s & vbCrLf & ? <tr>?
For Each fld in rs.Fields
s = s & ? <td>? & fld.Value & ?</td> ?
Next
s = s & ? *lt;/tr>?
rs.MoveNext
Wend
s = s & vbCrLf & ?</table>? & vbCrLf
Response.Write s
採用這種方法會出現一些問題。第一個問題是反覆串聯字串需要花兩次方的時間,更通俗地說,運行這種迴圈語句所花的時間與記錄數乘以欄位數所得值的平方成正比。在將 ADO 記錄集轉換為 HTML 表的特定情況下,應考慮使用 GetRows 或 GetString。如果在 JScript 中串聯字串,特別建議使用 += 運算子,即,使用 s += ?某字串?,而不使用 s = s + ?某字串?。
技巧 21:啟用瀏覽器和代理緩衝
在預設情況下,ASP 禁止在瀏覽器和代理中進行緩衝。這是有意義的,因為就實質而言ASP 頁面是動態,上面有隨時間不斷變化的潛在資訊。如果頁面不要求在每個視圖上進行重新整理,您應啟用瀏覽器和代理緩衝。這可使瀏覽器和代理在一定的時間內使用頁面的“緩衝”副本,您可以控制時間的長短。緩衝可以大大減輕伺服器上的負載,縮短使用者的等待時間。
哪一種動態網頁面可作為要緩衝的頁面呢?
注意,在使用瀏覽器或代理緩衝的情況下,Web 服務器上記錄的訪問次數減少了。如果您想準確地測量所有整頁模式或張帖公布,您就不希望使用瀏覽器和代理緩衝。瀏覽器緩衝由 HTTP“到期”前序控制,該前序由 Web 服務器發送給瀏覽器。ASP 提供兩個簡單的機制發送此前序。要設定頁面使其過多少分鐘後到期,則應設定 Response.Expires 屬性。
技巧 22:儘可能使用 Server.Transfer 代替 Response.Redirect
Response.Redirect 讓瀏覽器請求另一個頁面。此函數常用來將使用者重新導向到一個登入Response.Redirect 讓瀏覽器請求另一個頁面。此函數常用來將使用者重新導向到一個登入或錯誤頁面。因為重新導向強制請求新頁面,結果是瀏覽器必須到 Web 服務器往返兩次,且 Web 服務器必須多處理一個請求。IIS 5.0 引入了一個新的函數 Server.Transfer,它將執行轉移到同一台伺服器上的另一個 ASP 頁。這樣就避免多餘的瀏覽器-Web-伺服器的往返,從而改善了總體系統效能以及縮短了使用者的回應時間。檢查“重新導向”中的“新的方向”,上面應該是 Server.Transfer 和 Server.Execute。
技巧 23:在目錄 URL 中使用後斜杠
一個相關的技巧是確保在指向目錄的 URL 中使用後斜杠 (/)。如果您省略了後斜杠,瀏覽器就會向伺服器發出請求,只是為了告訴伺服器,它在請求目錄。瀏覽器就會發出第二個請求,將斜杠附加到 URL 後面,只有此後,伺服器才能以該目錄的預設文件或目錄列表(如果沒有預設文件且啟用了瀏覽目錄的話)響應。附加斜杠可省去第一個、無用的住返。為便於使用者閱讀,可以省略顯示名稱中的後斜杠。
技巧 24:避免使用伺服器變數
訪問伺服器變數會使 Web 網站向伺服器發出一個特殊請求,並收集所有伺服器變數,而不只是您請求的那個變數。這種情況類似於,在發黴的閣樓上,在一個檔案夾中尋找某個檔案。當您想要找那個檔案時,您必須去閣樓上,先找到檔案夾,然後才能找到這份個檔案。當您想要找那個檔案時,您必須去閣樓上,先找到檔案夾,然後才能找到這份檔案。當您請求伺服器變數時,發生的情況是一樣的 - 您第一次請求伺服器變數時,就會使效能受到影響。後面的對其它伺服器變數的請求,則不會對效能產生影響。決不要訪問非限定的 Request 對象(例如,Request("Data"))。對於不在 Request.Cookies、Request.Form、Request.QueryString 或 Request.ClientCertificate 中的項目,則隱式調用 Request.ServerVariables。Request.ServerVariables 集合比其它集合慢得多。
技巧 25:升級到最新和最出色的
系統組件是恒定的,我們建議您將它們升級到最新和最好的配置。最好升級到 Windows 2000(因此,也應升級到 IIS 5.0、ADO 2.5、MSXML 2.5、Internet Explorer 5.0、VBScript 5.1 和 JScript 5.1)。在多處理器電腦上,實施 IIS 5.0 和 ADO 2.5 可顯著改善效能。在 Windows 2000 下,ASP 可以很好地擴充到四個處理器或更多,而在IIS 4.0 下,ASP 的擴充性不能超出兩個處理器。在應用程式中使用的指令碼代碼和 ADO 越多,升級到 Windows 2000 之後,效能的改善就會越多。如果目前還不能升級到 Windows 2000,您可以升級到 SQL Server、ADO、VBScript 和JScript、MSXML、Internet Explorer 和 NT 4 Service Packs 的最新版本。它們均可提高效能和可靠性。
技巧 26:最佳化 Web 服務器
有多種 IIS 最佳化參數可以改善網站效能。例如,對於 IIS 4.0,我們常常發現,增加ASP ProcessorThreadMax 參數(參見 IIS 文檔)可以顯著改善效能,特別是在傾向於等待後端資源(如資料庫)或其它中間產品(如螢幕刷)的網站上。在 IIS 5.0 中,您可能發現啟用 ASP Thread Gating 比尋找一個 AspProcessorThreadMax 最佳設定效率更高,這一點現在已為大家所熟知。
最佳的配置設定取決於(其中一些因素)應用程式代碼、運行所在的系統硬體和客戶機工作負載。找到最佳設定的唯一方法是進行效能測試.
技巧 27:進行效能測試
正如我們在前面已經講過,效能是一個特徵。如果您想要改善網站的效能,那麼就制定一個效能目標,然後逐步改進,直到達到目標為止。不要,就不進行任何效能測試。通常,在項目結束時,再作必需的結構調整已經為時太晚,您的客戶將為此感到失望。將效能測試作為您日常測試的一部分來進行。可以對單個組件分別進行效能測試,如針對ASP 頁或 COM 物件,或將網站作為一個整體來測試。許多人使用單個瀏覽器請求頁面,來測試 Web 網站的效能。這樣做就會給您一個感覺,即網站的響應能力很好,但這樣做實際上並不能告訴您在負載條件下網站的效能如何。
一般情況下,要想準確地測試效能,您需要一個專門的測試環境。此環境應包括硬體,其處理器速度、處理器數量、記憶體、磁碟、網路設定等方面與生產環境的硬體相似。其次,您必須指定客戶機的工作負載:有多少同時的使用者,他們發出請求的頻率,他們點擊頁面的類型等等。如果您沒有網站實際使用方式的資料,您必須估計一下使用的情況。最後,您需要一個可以類比預期客戶機工作負載的工具。有了這些工具,您就可以開始回答諸如“如果我有 N 個同時的使用者,那麼需要多少伺服器?”之類的問題。您還可以找出出現瓶頸的原因,並以此為目標進行最佳化。

(網頁編輯:風之翼)



相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

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

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