知識
不管是網(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)案例查看更多
相關(guān)閱讀
- 表單
- 小程序開發(fā)平臺前十名
- 云南網(wǎng)絡(luò)營銷
- php網(wǎng)站
- 云南百度小程序
- 云南網(wǎng)站建設(shè)一條龍
- 云南省建設(shè)廳網(wǎng)站官網(wǎng)
- 云南省城鄉(xiāng)建設(shè)廳網(wǎng)站
- 網(wǎng)絡(luò)公司報價
- 云南網(wǎng)站建設(shè)方法
- 網(wǎng)站建設(shè)方案 doc
- 電商網(wǎng)站建設(shè)
- 小程序開發(fā)課程
- 報廢車回收管理系統(tǒng)
- 關(guān)鍵詞快速排名
- 網(wǎng)站建設(shè)招商
- 汽車報廢回收
- web前端
- vue開發(fā)小程序
- 云南小程序開發(fā)公司推薦
- 網(wǎng)站建設(shè)哪家強(qiáng)
- 高端網(wǎng)站建設(shè)公司
- 云南網(wǎng)站建設(shè)哪家好
- 小程序公司
- 網(wǎng)站建設(shè)開發(fā)
- 開發(fā)框架
- 重慶網(wǎng)站建設(shè)公司
- 云南建設(shè)廳網(wǎng)站
- 云南網(wǎng)站建設(shè)公司地址
- 云南小程序開發(fā)首選品牌