利用緩沖技術(shù)提高JSP程序的性能和穩(wěn)定性(2)_.Net教程
推薦:用XML JSP實(shí)現(xiàn)網(wǎng)頁(yè)內(nèi)容動(dòng)態(tài)顯示的方案一、xml技術(shù)簡(jiǎn)介 XML(eXtensible Markup Language??可擴(kuò)展標(biāo)記語言)是一種 擴(kuò)展的源標(biāo)記語言,是可以定義其他語言的語言。 它是SGML的一個(gè)簡(jiǎn)化子集,這個(gè)子集是專為Web環(huán)境設(shè)計(jì)的,這就是說
可以看到,我們只用少量的代碼就構(gòu)造出了一個(gè)帶有復(fù)雜緩沖系統(tǒng)的主頁(yè)。這個(gè)緩沖系統(tǒng)對(duì)頁(yè)面各個(gè)部分分別進(jìn)行緩沖,而且各個(gè)部分的緩沖時(shí)間完全符合它們各自的信息變化頻繁程度。由于有了緩沖,現(xiàn)在我們可以在主頁(yè)中放入更多的內(nèi)容;而在以前沒有緩沖的情況下,主頁(yè)中放入過多的內(nèi)容會(huì)導(dǎo)致頁(yè)面訪問速度變慢,甚至可能給數(shù)據(jù)庫(kù)服務(wù)器帶來過重的負(fù)載。
四、導(dǎo)航條
假設(shè)在規(guī)劃網(wǎng)站的時(shí)候,我們決定在左邊導(dǎo)航條的下方顯示購(gòu)物車內(nèi)容。我們將顯示出用戶所拍賣的每一種商品的出價(jià)次數(shù)和當(dāng)前報(bào)價(jià),以及所有那些當(dāng)前用戶出價(jià)最高的商品的清單。
我們利用會(huì)話級(jí)的緩沖能力在導(dǎo)航條中構(gòu)造上述功能。把下面的代碼放入模板或者包含文件,以便網(wǎng)站中的其他頁(yè)面引用這個(gè)導(dǎo)航條:
<cache:cache key="navbar" scope="session" time="300"> <% //提取并顯示當(dāng)前的出價(jià)信息 %> </cache:cache>
在這里我們引入了兩個(gè)重要的屬性,即key和scope。在本文前面的代碼中,由于cache標(biāo)記能夠自動(dòng)為代碼塊創(chuàng)建唯一的key,所以我們不需要手工設(shè)置這個(gè)key屬性。但在這里,我們想要從網(wǎng)站的其余部分引用這個(gè)被緩沖的代碼塊,因此我們顯式定義了該cache標(biāo)記的key屬性。第二,scope屬性用來告訴cache標(biāo)記當(dāng)前代碼塊必須以用戶為單位緩沖,而不是為所有用戶緩沖一次。
在使用會(huì)話級(jí)緩沖時(shí)應(yīng)該非常小心,應(yīng)該清楚:雖然我們可以讓復(fù)雜的導(dǎo)航條減少5倍或10倍的服務(wù)器負(fù)載,但它將極大地增加每個(gè)會(huì)話所需要的內(nèi)存空間。在CPU能力方面增加可能的并發(fā)用戶數(shù)量無疑很理想,但是,一旦在內(nèi)存支持能力方面讓并發(fā)用戶數(shù)量降低到了CPU的限制之下,這個(gè)方案就不再理想。
正如本文前面所提到的,我們希望從網(wǎng)站的其余部分引用這個(gè)緩沖的代碼塊。這是因?yàn)�,�?dāng)一個(gè)用戶增加了一個(gè)供拍賣的商品、或者出價(jià)競(jìng)購(gòu)其他用戶拍賣的商品時(shí),我們希望刷新緩沖,使得導(dǎo)航條下一次被讀取時(shí)具有最新的內(nèi)容。雖然這些數(shù)據(jù)可能因?yàn)槠渌脩舻幕顒?dòng)而改變,但如果用戶在網(wǎng)站上執(zhí)行某個(gè)動(dòng)作之后看到自己的清單仍未改變,他可能會(huì)感到非常困惑。
OSCache庫(kù)提供的flush標(biāo)記能夠刷新緩沖內(nèi)容。我們可以把下面的代碼加入到處理用戶動(dòng)作且可能影響這一區(qū)域的頁(yè)面之中:
<cache:flush key="navbar" scope="session" />
當(dāng)用戶下次訪問它時(shí),navbar緩沖塊將被刷新。
至此為止,我們這個(gè)示例網(wǎng)站的構(gòu)造工作已經(jīng)完成且可以開始運(yùn)行。下面我們來看看OSCache的異常處理能力。即使緩沖的內(nèi)容已經(jīng)作廢,比如在緩沖塊內(nèi)出現(xiàn)了Java異常,OSCache標(biāo)記庫(kù)仍舊允許我們用編程的方法顯示這些內(nèi)容。有了這種異�?刂乒δ�,我們可以拆除數(shù)據(jù)庫(kù)服務(wù)器和Web服務(wù)器之間的連接,而網(wǎng)站仍能夠繼續(xù)運(yùn)行。JSP 1.2規(guī)范引入了TryCatchFinally接口,這個(gè)接口允許標(biāo)記本身檢測(cè)和處理Java異常。因此,標(biāo)記可以結(jié)合這種異常處理代碼,使得JSP頁(yè)面更簡(jiǎn)單、更富有條理。
OpenSymphony正在計(jì)劃實(shí)現(xiàn)其他的緩沖機(jī)制以及一個(gè)可管理性更好的主系統(tǒng),它將使我們能夠?qū)彌_使用的RAM和磁盤空間進(jìn)行管理。一旦有了這些功能,我們就能夠進(jìn)一步提高網(wǎng)站的響應(yīng)速度和可靠性。
【結(jié)束語】
OSCache能夠幫助我們構(gòu)造出更豐富多彩、具有更高性能的網(wǎng)站。有了OSCache標(biāo)記庫(kù)的幫助,現(xiàn)在我們能夠用它解決一些影響網(wǎng)站響應(yīng)能力的問題,比如訪問量高峰期、數(shù)據(jù)庫(kù)服務(wù)器負(fù)荷過重等。
分享:基于 pureXML 技術(shù)的數(shù)據(jù)庫(kù)表結(jié)構(gòu)擴(kuò)展信息系統(tǒng)交付使用之初,數(shù)據(jù)庫(kù)表結(jié)構(gòu)的設(shè)計(jì)往往邏輯結(jié)構(gòu)清晰,管理使用方便,但是當(dāng)信息系統(tǒng)項(xiàng)目運(yùn)行一段時(shí)間,隨著業(yè)務(wù)的不斷變化和增加,處理流程不斷的變革,信息系統(tǒng)需要從前臺(tái)界面到后臺(tái)
- asp.net如何得到GRIDVIEW中某行某列值的方法
- .net SMTP發(fā)送Email實(shí)例(可帶附件)
- js實(shí)現(xiàn)廣告漂浮效果的小例子
- asp.net Repeater 數(shù)據(jù)綁定的具體實(shí)現(xiàn)
- Asp.Net 無刷新文件上傳并顯示進(jìn)度條的實(shí)現(xiàn)方法及思路
- Asp.net獲取客戶端IP常見代碼存在的偽造IP問題探討
- VS2010 水晶報(bào)表的使用方法
- ASP.NET中操作SQL數(shù)據(jù)庫(kù)(連接字符串的配置及獲取)
- asp.net頁(yè)面?zhèn)髦禍y(cè)試實(shí)例代碼
- DataGridView - DataGridViewCheckBoxCell的使用介紹
- asp.net中javascript的引用(直接引入和間接引入)
- 三層+存儲(chǔ)過程實(shí)現(xiàn)分頁(yè)示例代碼
.Net教程Rss訂閱編程教程搜索
.Net教程推薦
- C#實(shí)現(xiàn)的18位身份證格式驗(yàn)證算法
- 解析ASP.NET WebForm頁(yè)面內(nèi)容輸出方式
- 關(guān)于C#靜態(tài)構(gòu)造函數(shù)的幾點(diǎn)說明
- 技巧應(yīng)用:ASP.Net中的MD5加密
- asp.net 圖片超過指定大小后等比例壓縮圖片的方法
- 解讀ASP.NET網(wǎng)絡(luò)編程中經(jīng)常用到的27個(gè)函數(shù)集
- 解析虛擬主機(jī)上用Asp.net實(shí)現(xiàn)Urlrewrite
- 七招制勝ASP.NET應(yīng)用程序開發(fā)
- ASP.NET如何改變checkboxlist選中項(xiàng)字體顏色
- Windows CE.Net下矩陣鍵盤開發(fā)設(shè)計(jì)詳解
- 相關(guān)鏈接:
- 教程說明:
.Net教程-利用緩沖技術(shù)提高JSP程序的性能和穩(wěn)定性(2)
。