阅读:2427回复:7
如何避免讀取快取資料時與遠端主機做連線?
一個網頁被完整讀取下來後,正常情況下會被快取到硬碟及記憶體
先把網頁關閉,再打開,理論上網頁內的所有物件都可從快取裡面取出 但 Firefox 在開啟已經被快取過的頁面時,還是會再次到遠端主機去做連線 然後才從快取裡面取檔案,而如果切換到離線瀏覽模式 (office work) 切斷了 FX 的網路通信,以這個狀態下去開啟已經開過(快取)的網站時 速度比在非離線模式下快數秒之久 (這個模式下不用/不能連到任何主機去) 而這個「多餘連線」的過程有可能是去檢查遠端主機有沒有更新內容所作的動作 但我覺得既然都用到快取了就沒必要在連線去看內容有無更新 (個人習慣) 有興趣的人可以試試在離線模式及非離線模式下 開啟已被完整快取過的網站,然後仔細看狀態欄上的訊息 離線模式下會直接跳出 Done 的字樣,表示讀取的過程是立刻讀取硬碟裡面的資料 而非離線模式下,則會先出現 watting for xxx,這表示在讀取資料上有先經過遠端主機 之後才去硬碟裡面撈快取資料 而這個連線的時間,視遠端主機連線的速度而定,基本上起碼會浪費「一秒鐘」以上 所以想問有沒有套件或方法「砍掉」這個我覺得有點多餘的「連線檢查」過程 主要希望能在非離線模式下也能享受離線模式那種暢快感,雖然面對大眾的情況下 的確是需要檢查,但希望能讓使用者有選擇的權力,畢竟這個檢查的時間可是差很多 我懷疑 Opera 預設就是完全不檢查,所以快取存取速度超快若是的話,會讓使用者 產生 Opera 開網頁的速度很快的錯覺但其實任何瀏覽器只要略過這個檢查,開「舊」網頁的速度應該都是一樣 (除非對快取資料有做特殊處理,才會有差異) 順道一提,在讀取快取資料的速度上 Opera 曾經是佼佼者 (懷疑就是少了這個檢查連線) 不知現在如何了 |
|
|
1楼#
发布于:2010-10-11 22:34
browser.cache.check_doc_frequency
看这项是不是,我没设置过,不过听上去应该是这项了 http://kb.mozillazine.org/Browser.cache ... _frequency |
|
|
2楼#
发布于:2010-10-11 22:34
dindog:browser.cache.check_doc_frequency 设置为2就是完全不检查有无更新,直接从缓存载入。重新载入需刷新。 |
|
3楼#
发布于:2010-10-11 22:34
設置了那個參數沒用,一樣會先連線到遠端主機去。
|
|
|
4楼#
发布于:2010-10-11 22:34
你试试新建一个标签页打开一个网页,然后关闭这个标签页,然后再打开刚才那个网页试试,对比默认的值很快了。
|
|
5楼#
发布于:2010-10-11 22:34
|
|
|
6楼#
发布于:2010-10-11 22:34
|
|
|
7楼#
发布于:2010-10-11 22:34
这个应该是由web服务端控制的,譬如cookies等
就我所知,在nginx中有个expires参数 譬如 location ~.*\.(gif)$ { expires 30d; } location ~.*\.(html)$ { expires 1h; } 其就设置为gif图片在客户端缓存30天,html代码缓存1小时,以减少客户端对服务端不必要的请求.... expires可以控制 HTTP 应答中的expires和cache-control 而客户端譬如firefox访问页面时会连接服务端读取expires,以此来决定是访问cache信息还是重新从服务端download新信息 当然你也可以通过各种技巧来控制各网站在本地的expires信息,不过这其实就是离线浏览了,扩展mason似乎可以解决此类问题 |
|