ASP快取類的教程

2022-07-29 05:09:13 字數 2288 閱讀 2187

一、何謂asp快取/為什麼要快取

當你的web站點採用asp技術建立的初期,可能感覺到的是asp動態網頁技術帶來的便利性,以及隨意修改性、自如的http控制。但是,隨著訪問量的增加,你一定會發現自己的站點訪問速度越來越慢,iis重新啟動得越來越頻繁。接下來,你一定想優化asp,諸如更換效能更優異的資料庫、建立索引、編寫儲存過程等等。這些措施有些不需要增加成本壓力,有些則成本壓力很大(譬如叢access到sql),而且效果還不一定。

面對web訪問壓力,我認為最經濟的辦法是利用快取優化技術來實現緩解web的服務壓力。

web訪問量增加通常意味著以下資源需求的快速增長:

1、 網絡卡流量增加,需要消耗更多的cpu處理網路流量和網路i/o執行緒。

2、 需要更頻繁的開啟/關閉資料庫鏈結(如果使用資料庫技術—通常asp都會採用資料庫作為資料儲存),嚴重消耗資源的事物數量、以及事務相互競爭資源引起的死鎖、會增加網路i/o或者cpu消耗。

3、 如果採用session的話,iis為了維持狀態,會消耗更多記憶體,而記憶體消耗可能會引發物理記憶體不夠,引起物理記憶體同輔存間的頻繁交換,從而引起**執行的停頓,web響應阻滯。

4、 由於訪問的不到及時響應,會引起網頁訪問故障,導致使用者重新整理,從而加劇cpu、記憶體等資源需求。

實際上,考慮通常的web應用程式,很多時候的動態**執行是不必要的。

二、asp快取的分類

擅自總結,asp的快取可以分為兩類:

1、 檔案快取

所謂檔案快取,就是根據邏輯判斷,一段時間內某個asp的特定執行將不會有很大的變動,因而將內容以靜態html的形式存放,然後以web的重定向技術讓客戶端訪問靜態檔案,以達到減少cpu、資料庫資源等的需求。這樣的應用很多,譬如很多論壇就是在回覆貼子的時候將整個貼子重新生成乙個靜態檔案,然後進行重定向的,例如 donews.com的論壇。該成靜態還有乙個***(好處)--可以很容易被google等搜尋引擎收錄。一些所謂新聞發布系統的都採用了此技術。

2、 檔案片斷快取

所謂檔案快取,也是基於邏輯判斷,某部分資料(通常是需要消耗資源的大容量資料庫查詢取得)在一定時間內不會改變,所以我們可以將這些資料利用檔案的形式進行儲存,當需要時候,可以通過讀取檔案來獲取資料,避免增加資料庫的負擔。例如,我們通常將一些資料以xml格式儲存,然後利用xslt技術實現顯示(xml處理通常需要大量cpu資源,所以通常是ie直接讀取xml到客戶端在客戶的cpu上進行處理)。csdn的論壇就是這樣處理的。

3、 主存快取

除此之外,還可以考慮在記憶體中處理快取,將需要及時響應的內容儲存在記憶體中,一旦訪問需求,立即從快速的貯存中輸送出去。如果極大量的訪問需求集中在幾個少量的頁面或者主存足夠多,我想採用主存快取一定可以大幅度提高web訪問效能。

三、如何實現/使用快取

實現快取需要考慮以下問題:

1、 哪些頁面會在短時間內不會改變?

分析自己的站點,這樣的頁面很多。譬如乙個站點通常都有新聞資訊類的欄目,這些欄目通常都是站點維護人員在一天的某個時間發布資料,之後很少改動頁面。那麼這些頁面就適合於採用靜態檔案快取。實際上,所謂新聞發布系統就是這麼做的,那麼那也可以參考這些系統的思想改造自己的原有動態asp頁面。

2、 那些頁面針對全部訪問者都採用同乙個邏輯生成(也就是不區分訪問者)。

除了新聞資訊之類的欄目所有訪問者都看乙個介面外,論壇等消耗資源的應用一般也可以設計成統一邏輯生成(同乙個貼子,張三李四看的都一樣),針對這類應用頁面我們也可以採用靜態快取來實現。也可以考慮將資料片斷化,利用指令碼技術在伺服器處理能力之外也就是客戶端瀏覽器進行處理。

3、 採用快取的代價和收穫。

主要就是「空間換(響應)時間」。利用快取技術將之後頻繁需要的內容進行預處理,使之提高web伺服器響應能力,更重要贏得訪問者的歡心。

代價就是web空間需求增加,同時又可能影響到訪問效果。

但我認為適當的快取,是利大於弊的。

4、 那些地方不適宜採用快取

動態查詢頁面,每個人的查詢內容不一樣,所以顯示結果不大一樣,所以不大可能將查詢結果生成快取,所以採用快取較為複雜且快取利用率底下,造成管理成本上什(假設你快取了1000個查詢關鍵字,那麼管理這些關鍵字同快取的對應也是麻煩事)。

四、例項分析

檔案users.asp

至於快取的作用,我想我也不用再多說了,它的作用已經很明顯,特別是對於資訊量非常大或是全資料庫頁面的**,他能很好地利用主機的記憶體資源,加速asp的執行效率,減輕伺服器的負擔,而動網在這一方面做得是最突出的,像他現在的dvbbs7.1.0版,更是在快取的利用上更上一層樓,前後臺大多的操作都和快取有關,而現在動網裡用的也就是迷城浪子的快取類:

asp頁面快取問題

今天開發遇到個問題關於頁面快取的技術,通俗的講就是怎麼使asp.net頁面不被快取即 頁面總是顯示的最新的內容 禁用客戶端快取 html asp response.expires 1 response.expiresabsolute now 1 response.cachecontrol no ca...

改變asp許可權的教程

asp.dll解析成system提公升許可權 網路上傳統的提公升asp許可權為系統的有兩種 1.圖形化下的,把預設站點 主目錄 應用程式保護設定為低,這樣就可以把asp許可權設定為system.但這種提公升方法很容易被發現,所以網路有另一種一般是用adsutil.vbs來提公升許可權.而這個也是今天...

asp自帶的記憶體快取 application

函式getcache,會自動建立需要的快取。複製 如下 function getcache funsname,isreset,isarr,timeinfo funsname 需要快取的內容,這裡要輸入乙個function名 isreset 是否更新 值 0 根據時間或判斷快取為空時自動更新 主動更新...