年11月29日webform aspx分頁狀態(tài)保持aspnet企業(yè)技術_第1頁
年11月29日webform aspx分頁狀態(tài)保持aspnet企業(yè)技術_第2頁
年11月29日webform aspx分頁狀態(tài)保持aspnet企業(yè)技術_第3頁
年11月29日webform aspx分頁狀態(tài)保持aspnet企業(yè)技術_第4頁
年11月29日webform aspx分頁狀態(tài)保持aspnet企業(yè)技術_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、 企業(yè)技術講師:馬倫緩存(Cache)如果每次進入頁面的時候都查詢數(shù)據(jù)庫生成頁面內容的話,如果訪問量非常大,則網(wǎng)站性能會非常差。而如果只有第一次訪問的時候才查詢數(shù)據(jù)庫生成頁面內容,以后都直接輸出內容,則能提高系統(tǒng)性能。這樣無論有多少人訪問都只訪問一次數(shù)據(jù)庫,數(shù)據(jù)庫壓力不變。CPU:二級緩存 三級緩存:內存:磁盤緩存(Cache)是一種用空間換取時間的技術,存在于計算機中很多地方,用來將一些慢速設備中的常用數(shù)據(jù)保存在快速設備中,取數(shù)據(jù)的時候直接從快速設備中取。比如CPU二級緩存、內存、windows文件讀取緩存。緩存存在失效的問題:為了保證從緩存中讀取數(shù)據(jù)和慢速數(shù)據(jù)(數(shù)據(jù)庫)中數(shù)據(jù)一致,則需要在

2、慢速數(shù)據(jù)(數(shù)據(jù)庫)中對應的數(shù)據(jù)發(fā)生變化的時候,清除緩存中相應的數(shù)據(jù)。緩存是改進網(wǎng)站性能的第一個手段,就像索引是改進數(shù)據(jù)庫性能的第一個手段一樣。 緩存主要分為:頁面緩存(中庸)、數(shù)據(jù)源緩存(最不靈活的)、數(shù)據(jù)緩存(靈活)這三種主要類型。頁面緩存給頁面添加標簽就可以啟用頁面緩存,這樣整個頁面的內容都會被緩存,頁面中的 代碼、數(shù)據(jù)源在緩存期間都不會被運行,而是直接輸出緩存的頁面內容。 Duration表示緩存時間,以秒為單位,超過這個時間則緩存失效,再次生成以后會再緩存15秒,以此類推。在Page_Load處設置斷點、修改數(shù)據(jù)庫數(shù)據(jù)測試。這個緩存是在服務器緩存的,不是在客戶端,因為用HttpWatc

3、h還是能看到向服務器提交的請求的,只不過服務器看到有緩存就沒有再執(zhí)行頁面類。一般只有看帖、看新聞、看視頻的頁面才緩存,CUD的頁面沒必要緩存。緩存是針對所有這個頁面的訪問者。這樣1個訪問者和1萬個訪問者、一次訪問和100萬次訪問對數(shù)據(jù)庫的壓力是一樣的。對于看新聞頁面來講,如果如上設置的話,則會緩存在第一個看到的新聞,因為?id=2、?id=3只是頁面的不同參數(shù)而已,為了能讓不同的新聞各自緩存,因此可以設置VaryByParam=“id”,表示對于相同頁面的不同的id參數(shù)進行單獨緩存。如果有多個確定緩存的參數(shù),則將參數(shù)名用分號隔開即可,比如VaryByParam=“id;number”。測試。緩

4、存可能會有過期數(shù)據(jù)的問題,因此根據(jù)需求選用。如果想讓任何不同的查詢字符串都創(chuàng)建不同的緩存,則設置VaryByParam=*,一般情況下設置“*”就足夠。在WebUserControl中也可以像頁面緩存一樣設置控件的緩存。數(shù)據(jù)源緩存設定ObjectDataSource的CacheDuration(緩存時間:秒),EnableCaching=true。這樣每隔CacheDuration指定的時間段才調用SelectMethod指定的方法來執(zhí)行數(shù)據(jù)庫查詢,其他時候都是直接返回緩存的數(shù)據(jù)。取數(shù)據(jù)的過程緩存,在緩存期間,綁定控件向ObjectDataSource要數(shù)據(jù), ObjectDataSource

5、直接將緩存的數(shù)據(jù)返回給控件,不再去向TypeName指向的類要數(shù)據(jù)。緩存依賴依賴于文件內容CacheDependency cDep = new CacheDependency(filePath);依賴于數(shù)據(jù)庫內容(輪詢機制/通知機制)(不講)一:輪詢機制 fw主動到數(shù)據(jù)庫檢查數(shù)據(jù)是否改變1.使用C:WINDOWS Frameworkv2.0.50727中的aspnet_regsql.exe:注冊:aspnet_regsql -S . -E -ed -d 數(shù)據(jù)庫名 -et -t 表名刪除:aspnet_regsql -S . -E -d 數(shù)據(jù)庫名 -dt -t 表名取消數(shù)據(jù)庫緩存依賴: aspn

6、et_regsql -S . -E -dd 數(shù)據(jù)庫名數(shù)據(jù)庫名 列出已注冊表:aspnet_regsql -S . -E -d 數(shù)據(jù)庫名 -lt2.配置web.config(見備注)3.數(shù)據(jù)庫依賴對象SqlCacheDependency cDep = new SqlCacheDependency(GSSMS, Students);Session深入 -狀態(tài)提供程序 Session分三種:1.InProc(進程內)-默認就是這種-速度快/但內存小/易丟失進程外:可以在IIS或ASPNET服務意外關閉時繼續(xù)保持狀態(tài),注意此時存儲到session中的對象必須支持序列化:2.StateServer:使用

7、aspnet_state.exe2.1修改配置文件:2.2設置是否允許遠程使用,位置:C:WINDOWS Frameworkv4.0.30319HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesaspnet_stateParameters 2.3默認端口號:42424 2.4開啟服務:我的電腦-管理-服務與應用程序-服務 State Service( 狀態(tài)服務)3.SQLServer3.1新建ASPSTATE數(shù)據(jù)庫使用運行Session數(shù)據(jù)庫腳本:臨時儲存區(qū):InstallSqlState.sql & UninstallSqlState.sql永

8、久儲存區(qū):InstallPersistSqlState.sql & UninstallPersistSqlState.sql(需要使用SQLServerAgent服務-因為調度作業(yè))注意:之后配置數(shù)據(jù)庫權限麻煩的話,可以在運行完aspnet_regsql.exe后在數(shù)據(jù)庫中執(zhí)行你想要使用的sql腳本,就可以不配置權限了。微軟AJAX解決方案(*) 中內置的簡化AJAX開發(fā)的控件UpdatePanel放入ScriptManager,將要實現(xiàn)AJAX效果的控件放到UpdatePanel中即可。UpdatePanel原理探秘,用HttpWatch看。只把需要無刷新更新的部分放到UpdatePanel

9、中。UpdatePanel用來實現(xiàn)一些對性能要求不高的需求非常方便。從原理分析為什么在客戶端把TextBox變紅,AJAX請求以后又變白了。Timer實現(xiàn)定時AJAX效果,原理分析。UpdateProgress顯示“正在加載數(shù)據(jù)”。AJAX Toolkit簡介。全局文件添加Web全局應用程序類,注意文件名不要改。全局文件是對Web應用生命周期的一個事件響應的地方將Web應用啟動時初始化的一些代碼寫到Application_Start中。應用關閉的時候Application_End調用。當一個Session啟動的時候Session_Start被調用,Session結束(用戶主動退出或者超時結束)

10、Session_End被調用。當一個用戶請求來的時候Application_BeginRequest方法被調用當應用中出現(xiàn)未捕獲異常,Application_Error被調用(??迹?中的錯誤處理機制),用HttpContext.Current.Server.GetLastError()獲得異常信息,然后用Log4Net記錄到日志中。案例練習:實現(xiàn)圖片的防盜鏈,討論。案例練習:屏蔽指定的IP地址。錯誤頁當頁面發(fā)生錯誤的時候, 會將錯誤信息展示出來(Sqlconnection的錯誤就能暴露連接字符串),這樣一來不好看,二來會泄露網(wǎng)站的內部實現(xiàn)信息,給網(wǎng)站帶來安全隱患,因此需要定制錯誤頁,發(fā)生錯誤

11、時顯示開發(fā)人員定制的頁面。404頁面放點廣告也是好的嘛。配置web.config,配置customErrors區(qū)域: mode三個可選值:On:總是顯示定制錯誤頁面;Off:不顯示定制錯誤界面,直接顯示調用堆棧等異常信息;remoteonly:對于本機的訪問顯示調用堆棧等異常信息,對于外部用戶的顯示定制錯誤頁面。一般設置為RemoteOnly,這樣發(fā)生錯誤的話,管理員可以在服務器的瀏覽器中看詳細錯誤信息,普通用戶看不到。學習演示的時候mode設置為On,否則看不到定制頁。IIS配置安裝IIS。部署網(wǎng)站(發(fā)布或者拷貝都可以)。修改連接字符串,compilation設為false,刪掉cs代碼上傳

12、文件夾不給執(zhí)行權限: 在iis管理器中找到上傳文件夾,選擇屬性-執(zhí)行權限,設置為“無”。這樣哪怕利用漏洞上傳了可執(zhí)行代碼到上傳文件夾,也無法執(zhí)行。取消所有文件夾的瀏覽權限,防止用戶查看網(wǎng)站的文件列表,在iis管理器中找到主站節(jié)點屬性主目錄取消“目錄瀏覽”。IIS管理中,Web服務器擴展,只允許 那幾個,其他的CGI、ASP等全部禁止。IHttpModule public void Init(HttpApplication context) context.BeginRequest += MyBeginRequest; protected void MyBeginRequest(object s

13、ender, EventArgs e) HttpContext contex = (sender as HttpApplication).Context; contex.Response.Write(哈哈哈哈哈); URL重寫(UrlRewrite)為什么要URL重寫?1、有利于SEO,帶參數(shù)的URL權重較低;2、地址看起來更正規(guī),推廣uid??纯慈琦i網(wǎng)的URL重寫。偽靜態(tài):看起來像普通頁面,而非動態(tài)生成的頁面。原理:在Global.asax的Application_BeginRequest 中讀取Request.Url 得到請求的URL(View-3.aspx),然后用HttpContext.Current.RewritePath(ReWriteUrl)進行重寫(也就是交由另外一個頁面處理這個請求)(View.aspx?tid=3格式) 也可以使用微軟的URLRewrite,只要修改配置文件就可以進行URL重寫。照著文檔自學配置。見備注靜態(tài)頁文章的發(fā)布、列表顯示。靜態(tài)頁的評論1.讀取靜態(tài)頁面字符串2.從數(shù)據(jù)庫讀取某條新聞3.將

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論