ASP技巧集錦(官方權威版)-7

來源:互聯網
上載者:User
技巧
  技巧 21:啟用瀏覽器和代理緩衝
預設情況下,ASP 禁用瀏覽器和代理中的緩衝。這將很有意義,因為 ASP 生來就是動態,具有潛在地對時間敏感的資訊。如果有一個不需要對每次查看進行重新整理的頁,則應該啟用瀏覽器和代理緩衝。這使得瀏覽器和代理能在某一段時間內,使用某一頁的快取複本,這時間的長短可以控制。緩衝能明顯減輕伺服器負荷,使使用者的感受好一些。
哪種動態網頁可以緩衝?舉例說明:
天氣頁,每 5 分鐘更新一次。
列出新聞的首頁或新聞發布的首頁,每天更新 2 次。
公用基金運營列表,基本的統計數小時更新 1 次。
請注意,使用瀏覽器或代理緩衝,只有很少的命中被記錄到 Web 服務器上。如果想精確測量所有頁面查看或者張貼廣告,也許不喜歡使用瀏覽器和代理緩衝。
瀏覽器緩衝是由 Web 服務器發往瀏覽器的 HTTP 截至期限標題控制的。ASP 提供了兩種發送標題的機制。要將版面設定為在未來某個分鐘數後到期,請設定 Response.Expires 屬性。以下的例子通知瀏覽器:內容在 10 分鐘後到期:
<% Response.Expires = 10 %>
設定 Response.Expires 為負數或 0 則禁用緩衝。一定要使用較大的負數,例如 -1000 (大於一天),來克服伺服器時鐘和瀏覽器時鐘之間的差異。第二個屬性 Response.ExpiresAbsolute,允許設定內容到期的指定時間:
<% Response.ExpiresAbsolute = #May 31,2001 13:30:15# %>
如果不想使用 Response 對象設定到期時間,可以將 <META> 標記寫入 HTML,通常寫在 HTML 檔案的 <HEAD> 內部。一些瀏覽器會響應這條指令,但代理不會。
<META HTTP-EQUIV="Expires" VALUE="May 31,2001 13:30:15">
最後,可以標識內容對 HTTP 代理緩衝是否有效,請使用 Response.CacheControl 屬性。設定屬性為“Public”,允許代理緩衝內容。
<% Response.CacheControl = "Public" %>
預設情況下,該屬性設定為“Private”。注意,不應當為顯示某使用者專用資料的頁啟用代理緩衝,因為代理也許為屬於其他使用者的使用者頁面服務。

技巧 22:儘可能使用 Server.Transfer 替代 Response.Redirect
Response.Redirect 通知瀏覽器,請求一個不同的頁面。該函數經常用於重新導向使用者到登入或錯誤頁面。既然重新導向強制一個新頁請求,瀏覽器就必須做兩次到 Web 服務器的往返,而且 Web 服務器必須處理額外的請求。IIS 5.0 引入一個新的函數,Server.Transfer,該函數執行傳送到相同伺服器上的不同 ASP 頁。這樣避免了額外的、從瀏覽器到 Web 服務器的往返,從而改善了整體系統效能,同時改善了對使用者的回應時間。請查看重新導向中的新方向(英文),它討論了 Server.Transfer 和 Server.Execute。
也可以查看Leveraging ASP in IIS 5.0中有關 IIS 5.0 和 ASP 3.0 新功能的完全列表。(英文)

技巧 23:在目錄 URL 尾部加斜線
相關的技巧是,一定要定在指向目錄的 URL 尾部加斜線 (/)。如果省略了斜線,瀏覽器將向伺服器提出請求,僅通知它正尋找一個目錄。然後瀏覽器發出第二個請求,在 URL 末尾添加斜線,然後伺服器將那個目錄的預設文件作為響應,或者如果沒有預設文件並且瀏覽目錄已被啟用,就以目錄列表作為響應。添加了斜線便省去了第一個沒用的往返。出於對使用者的友好,也許想要在顯示的名稱的末尾省略斜線。
例如,寫:
<a href="http://msdn.microsoft.com/workshop/" title="MSDN Web
Workshop">http://msdn.microsoft.com/workshop</a>
它還適用於指向在 Web 網站首頁的 URL:請使用下面的: <a href="http://msdn.microsoft.com/">,不要用 <a href="http://msdn.microsoft.com">.

技巧 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 文檔)能獲得很大的好處,尤其是在經常等待後端資源,例如資料庫或其他中介層產品,例如 screen-scrapers,的網站上。在 IIS 5.0 中也許會發現,開啟 ASP Thread Gating 比試圖為 AspProcessorThreadMax 找一個最佳的設定更為有效。
下面的調整 IIS(英文),是一篇很好的資料。
最佳的配置取決於(在其他因素中)應用程式代碼、在其上啟動並執行硬體以及用戶端的工作負載。發現最佳設定的唯一方法是運行效能測試,它將我們帶入下一個技巧。

技巧 27:進行效能測試
如上所述,效能是一種指標。如果您正努力改進網站的效能,請先設定效能目標,然後提高效能直到達到目標為止。請不要將所有的效能測試放在項目的最後。往往到了項目的最後,再做非做不可的體繫結構改動已為時太晚,並使客戶失望。效能測試是日常測試的一部分。效能測試可以針對獨立組件進行,例如 ASP 頁面或 COM 物件,也可以將網站作為一個整體進行。
許多人使用單一的瀏覽器請求頁面來測試他們 Web 網站的效能。這將使您對網站的響應有很好的感覺,但對於網站在有負荷下的效能卻一無所知。
通常,要準確地測量效能,需要專用的測試環境。這個環境應該由那些,在處理器速度、處理器個數、記憶體、硬碟、網路設定等方面,能類比產品硬體的硬體組成。然後,需要定義用戶端的工作負載:有多少並發使用者;他們提出請求的頻率;他們將訪問的頁面類型等等。如果您無法從網站獲得實際的使用資料,則需要估計它們。最後,需要一個能類比預期用戶端工作負載的工具。在這些工具的協助下,可以開始回答一些問題,例如,如果我有 N 個並發使用者,需要多少台伺服器?您還能找出瓶頸和最佳化的目標。
下面列出了一些好的 Web 強度測試載入器。極力推薦“Microsoft Web 應用程式強度測試 (WAS)”工具包。WAS 允許記錄測試指令碼,然後類比成百或上千個訪問 Web 服務器的使用者。WAS 報告大量統計結果,包括每秒請求數、回應時間的分布和錯誤計數。WAS 具有增強用戶端和基於 Web 的介面;Web 介面允許進行遠程測試。
請務必閱讀 IIS 5.0 調試指南(英文)。


相關文章

Beyond APAC's No.1 Cloud

19.6% IaaS Market Share in Asia Pacific - Gartner IT Service report, 2018

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 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。