WebForm.aspx緩衝(Cache),webform.aspxcache
緩衝(Cache)1,如果每次進入頁面的時候都查詢資料庫而產生頁面內容的話,如果訪問量非常大則網站效能會非常差,如果只有第一次訪問的時候才查詢資料庫而產生頁面內容。以後都直接輸出內容。則能提高系統的效能。這樣無論有多少人訪問都只訪問一次資料庫。所以資料庫的壓力不變(即:即便再多人訪問頁面,也不會對資料庫造成壓力)緩衝是一中利用空間換取時間的技術,存在與電腦中的很多地方,用來將一些慢速裝置中的常用資料儲存在快速裝置中,取資料的時候直接沖快速裝置中取。比如Cpu的二級緩衝,windows檔案讀取緩衝緩衝存在失效的問題。為了保證從緩衝中讀取資料和慢速裝置中資料一致,則需要在慢速裝置中資料發生變化的時候,清除緩衝中相應的資料。緩衝是改進網站效能的第一手段,就像索引是改進資料庫效能的第一個手段一樣。asp.net緩衝主要分為:頁面緩衝,資料來源緩衝,資料緩衝這三種主要的類型//-------------------------------------------------------------------頁面快取頁面面緩衝:給頁面添加<%@ OutputCache Duration="15" VaryByParam="none"%>標籤就可以啟用頁面緩衝,這樣整個頁面的內容都會被緩衝。頁面中的Asp.net代碼,資料來源在緩衝期間都不會被運行,而是直接輸出緩衝的頁面內容。Duration表示緩衝時間,一秒為單位。超過這個事件則緩衝失效,再次產生以後會在緩衝15秒,以此類推。而註:如果看緩衝的效果的話,可以在Page_Load處設定斷點,然後修改資料庫資料,啟動調試,看你緩衝後,你在15秒內你重新整理頁面,看Page_Load會不會被執行,和你修改資料庫資料後,你重新整理頁面資料會不會更新。答案是:在緩衝的15秒內,再次重新整理頁面Page_Load不會不執行。既然代碼都沒被執行,所以你修改資料庫資料後,重新整理頁面後的資料也不會更新。所以你15秒前開始緩衝,15內,不管多少使用者訪問,和重新整理頁面看到的內容都是一樣的。緩衝是針對所有這個頁面的訪問者。這樣1個訪問者和1萬個訪問者,一次訪問和100w萬次訪問素對資料庫的嚴厲是一樣的http://locahost:2619/viewNews.aspx?id=1對於看新聞頁面來講,如果如上設定的話,它緩衝的是第一個頁面,也就是(即緩衝的是http://locahost:2619/viewNews.aspx?id=1),它不會考慮http://locahost:2619/viewNews.aspx?id=1與http://locahost:2619/viewNews.aspx?id=2有什麼不同。因為 ?id=2,?id=3隻是頁面的不同參數而已,為了能讓不同的新聞各自緩衝,因此可以設定VaryByParam="id",即:<%@ OutputCache Duration="15" VaryByParam="id"%>表示對於不同的id參數進行單獨緩衝,如果有多個確定緩衝的參數,則將參數名用分號隔開即可。比如:VaryByParam="id,number"。如果想讓任何不同的查詢字串都建立不同的緩衝,則設定VaryByParam="*",一般情況下設定"*"就足夠。在WebUserControl中頁可以像頁面緩衝一樣設定控制項的緩衝。頁面緩衝的作用:假設我在頁面中添加了這麼一段代碼<%@ OutputCache Duration="15" VaryByParam="none"%>那麼當第一個客戶來訪問我的頁面的時候,我就將整個頁面緩衝了。那麼在15秒之內,所有客戶緩衝我這個頁面的時候都是直接讀取我緩衝裡面的資料(即緩衝的頁面)它並沒有調用我的Page_Load代碼。(所以說,這15秒內所有的客戶看的內容都是一樣的,當過了15後,這個緩衝失效了。它又執行一次Page_Load,然後重新開始緩衝)<%@ OutputCache Duration="15" VaryByParam="none"%>中的VaryByParam="none"表示不考慮參數,只要是這個頁面我就給你緩衝15秒。<%@ OutputCache Duration="15" VaryByParam="id"%>,表示考慮參數,根據參數的不同id來緩衝。即:一個網站(http://locahost:2619/viewNews.aspx)可以很多個頁面(http://locahost:2619/viewNews.aspx?id=1) 比如第一個頁面的id是1,第二個頁面的id是2,那麼我就會根據頁面id的不同來緩衝。即每個頁面都有緩衝//-------------------------------------------------------------------資料來源緩衝<asp:ObjectDataSource ID="ObjectDataSource1" runat="server"></asp:ObjectDataSource> :註:ObjectDataSource是webForm.aspx中的一個控制項。在工具箱,資料裡可以拖進頁面資料來源緩衝:設定ObjectDataSource的CacheDuration(緩衝時間:秒),EnableCaching=true。這樣每隔CacheDuration指定的時間段才會調用SelectMethod指定的方法來執行資料庫的查詢。其他時候都是直接返回緩衝的資料。註:CacheDuration的預設值為Infinite 即無限期,可以給它設為你要的緩衝時間,例如CacheDuration="15" 即:<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" CacheDuration="15">緩衝固定的時間適用於首頁,文章列表等訪問頻繁的頁面。對於看帖頁面則不適合。假設有100萬個文章,如果每個文章都是固定緩衝1個小時的話,假設一個小時之內10萬個文章被看了,那麼就要緩衝10萬個文章,非常佔用記憶體。因為“百年一年的”的文章偶然被訪問一次也緩衝一個小時,非常佔用記憶體。這時候可以採用“滑動視窗”策略,比如:文章緩衝10分鐘,如果10分鐘之內又訪問了,則緩衝的失效時間修改為從被訪問這一刻起的10分鐘之後。以此類推。這樣經常訪問的忒子就可以“長期緩衝”,而不經常訪問的文章也不會因為偶然訪問而長期佔用緩衝。設定方法,資料來源:CacheExpirationPolicy="Sliding"
web cache 緩衝的技術有什
這說起來就多了。
從語言上說,新浪主要用的是PHP。
但是從伺服器技術上來說,就不是一天兩天能說的完了。
靜態化:儘可能的將頁面產生.shtml檔案。.shtml檔案裡還包括伺服器端包含技術<!--#include virtual="xxx.php"-->
緩衝:資料庫緩衝、PHP緩衝、MEMCACHE、CACHE SERVER等。每一個都得說上一天。
靜態化其實也是一種緩衝技術。
負載平衡:多台伺服器同時提供WEB訪問,每個讀者隨機被一台伺服器服務,增加輸送量。
分散式資料庫
以及等等。
高速緩衝儲存空間Cache是屬於主儲存空間(記憶體儲器)?那二級緩衝又屬於什
二級緩衝介於記憶體和CPU之間,其實在是在一級緩衝之後,記憶體之前,作用是加快CPU和記憶體之間的聯絡啊!