欧美三级国产三级日韩三级_亚洲熟妇丰满大屁股熟妇_欧美亚洲成人一区二区三区_国产精品久久久久久模特

web開發(fā)中的緩存問題的研究(一) - 新聞資訊 - 云南小程序開發(fā)|云南軟件開發(fā)|云南網(wǎng)站建設(shè)-昆明葵宇信息科技有限公司

159-8711-8523

云南網(wǎng)建設(shè)/小程序開發(fā)/軟件開發(fā)

知識

不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價值,我們在追求其視覺表現(xiàn)的同時,更側(cè)重于功能的便捷,營銷的便利,運營的高效,讓網(wǎng)站成為營銷工具,讓軟件能切實提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序為后期升級提供便捷的支持!

您當(dāng)前位置>首頁 » 新聞資訊 » 網(wǎng)站建設(shè) >

web開發(fā)中的緩存問題的研究(一)

發(fā)表時間:2006-5-14

發(fā)布人:葵宇科技

瀏覽次數(shù):38

web開發(fā)中的緩存問題的研究(一)
web開發(fā)中的緩存問題的研究(二)
web開發(fā)中的緩存問題的研究(三)

一般情況下,瀏覽器都會緩存已經(jīng)訪問過的頁面內(nèi)容,關(guān)于如何禁止瀏覽器緩存的介紹,在網(wǎng)上到處都有相關(guān)的文章,但是,關(guān)于瀏覽器如何利用緩存,如何處理緩存的講解,卻鮮有人談及.我一直為這個問題所困惑,這個問題也是絕大多數(shù)有經(jīng)驗的WEB開發(fā)人員所共同面臨的問題,我有些朋友已做過幾十個大大小小的WEB項目,當(dāng)與他們交流這些問題時,他們雖然也在項目中遇到和解決過這些問題,但由于沒有足夠的時間和精力來仔細(xì)思考這些問題的原因和細(xì)節(jié),他們對這些問題始終也是一知半解、含糊不清,而目前又很少關(guān)于這些問題的專門和詳細(xì)講解,我最近用了兩天的時間,把瀏覽器緩存的問題透徹地研究了一翻,主要包括一下方面的細(xì)節(jié).

1.如何禁止瀏覽器緩存,這是最簡單的問題,本來羞于在此講解,但是為了完整性,不妨將其列為一個知識點.

2.瀏覽器在訪問已緩存過的資源時,它在什么情況下會向服務(wù)器發(fā)送請求?在什么情況下根本就不向服務(wù)器發(fā)送請求.這與瀏覽器的緩存設(shè)置有關(guān)!但是,由于幾乎所有人的瀏覽器都是采用的默認(rèn)設(shè)置,所以,重點應(yīng)該放在分析瀏覽器的默認(rèn)緩存設(shè)置的研究上.

3.當(dāng)通過其他網(wǎng)頁文檔中的超鏈接來訪問某一個已經(jīng)緩存過的資源時,瀏覽器是否要向服務(wù)器發(fā)出訪問請求?如果不發(fā),則會出現(xiàn)一個問題:當(dāng)銷售一件商品后再回到商品庫存的顯示頁面時,看到的還將是先前看到的內(nèi)容,而不是更新的庫存數(shù)據(jù)。但是,在訪問一個普通的HTML文件時,如果瀏覽器每次都向服務(wù)器發(fā)送訪問請求,效率就會相對低下,這就失去了緩存的意義和價值.所以,結(jié)論應(yīng)是瀏覽器訪問動態(tài)頁面時不能使用緩存,而訪問靜態(tài)頁面時應(yīng)該使用緩存,但是,僅僅根據(jù)被訪問頁面的資源名稱,瀏覽器是無法知道商品庫存的顯示頁面是屬于動態(tài)內(nèi)容,還是屬于靜態(tài)內(nèi)容。瀏覽器是根據(jù)什么方式來判斷它緩存的資源是動態(tài)的,還是靜態(tài)的呢?在什么請求下,它會對緩存的資源總是發(fā)出新的請求呢?

4.對于緩存的內(nèi)容,即使瀏覽器向服務(wù)器發(fā)送了請求,但服務(wù)器在接收到請求后,可能不會返回內(nèi)容,而是讓瀏覽器繼續(xù)使用緩存的內(nèi)容,這在實際應(yīng)用中有什么好處呢?如何處理其具體細(xì)節(jié)呢?

5.服務(wù)器端也有緩存,當(dāng)服務(wù)器接收到瀏覽器的請求后,假設(shè)它返回響應(yīng)內(nèi)容,但返回的響應(yīng)內(nèi)容可能不是最新的內(nèi)容,而很可能是一個舊的緩存版本,這又是怎么回事呢?

所有這些問題,在筆者的《深入體驗java web開發(fā)內(nèi)幕》一書中都有深刻的分析和詳細(xì)的實驗步驟.

以下是該書的節(jié)選(不包括服務(wù)器端緩存技術(shù)的講解,服務(wù)器端緩存技術(shù)在其他章節(jié)有案例分析)

4.5.8 瀏覽器緩存內(nèi)幕與getLastModified方法
在HttpServlet類中定義了一個getLastModified方法,其完整語法定義如下:
protected long getLastModified(HttpServletRequest req)
其中的返回值表示自1970年1月1日的0點0分0秒開始計算的一個毫秒數(shù),HttpServlet類中定義的getLastModified方法總是返回一個負(fù)數(shù),在HttpServlet子類中可以對這個方法進(jìn)行覆蓋,以便返回一個代表當(dāng)前輸出的響應(yīng)內(nèi)容的修改時間,HttpServlet類的service方法可以根據(jù)這個返回值在響應(yīng)消息中自動生成Last-Modified頭字段。
一般情況下,瀏覽器都會緩存已經(jīng)訪問過的頁面內(nèi)容,getLastModified方法的返回值可以影響瀏覽器如何處理和利用緩存內(nèi)容。在詳細(xì)了解getLastModified方法的應(yīng)用之前,應(yīng)該先對瀏覽器的緩存機(jī)制有所了解。單擊IE瀏覽器的“工具”?“Internet選項”菜單,打開“Internet選項”對話框,接著再單擊“常規(guī)”選項卡中的“Internet臨時文件”欄中的“設(shè)置”按鈕,打開如圖4.16所示的“設(shè)置”對話框。

圖4.16

在圖4.16所示的“設(shè)置”對話框的“Internet臨時文件夾”欄中,可以看到瀏覽器保存所有緩存頁面內(nèi)容的文件夾的完整目錄名稱,對于Administrator用戶來說,其默認(rèn)的設(shè)置為“C:/Documents and Settings/Administrator/Local Settings/Temporary Internet Files”。單擊“Internet臨時文件夾”欄中的“查看文件”按鈕,可以打開這個文件夾,如圖4.17所示。.

4.17

web開發(fā)中的緩存問題的研究(一)
web開發(fā)中的緩存問題的研究(二)
web開發(fā)中的緩存問題的研究(三)

相關(guān)案例查看更多