jnlyu
狐狸大王
狐狸大王
  • UID10304
  • 注册日期2005-12-04
  • 最后登录2015-06-17
  • 发帖数304
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
阅读:2013回复:7

如何避免讀取快取資料時與遠端主機做連線?

楼主#
更多 发布于:2010-10-11 22:34
一個網頁被完整讀取下來後,正常情況下會被快取到硬碟及記憶體
先把網頁關閉,再打開,理論上網頁內的所有物件都可從快取裡面取出
但 Firefox 在開啟已經被快取過的頁面時,還是會再次到遠端主機去做連線
然後才從快取裡面取檔案,而如果切換到離線瀏覽模式 (office work)
切斷了 FX 的網路通信,以這個狀態下去開啟已經開過(快取)的網站時
速度比在非離線模式下快數秒之久 (這個模式下不用/不能連到任何主機去)
而這個「多餘連線」的過程有可能是去檢查遠端主機有沒有更新內容所作的動作
但我覺得既然都用到快取了就沒必要在連線去看內容有無更新 (個人習慣)
有興趣的人可以試試在離線模式及非離線模式下
開啟已被完整快取過的網站,然後仔細看狀態欄上的訊息
離線模式下會直接跳出 Done 的字樣,表示讀取的過程是立刻讀取硬碟裡面的資料
而非離線模式下,則會先出現 watting for xxx,這表示在讀取資料上有先經過遠端主機
之後才去硬碟裡面撈快取資料
而這個連線的時間,視遠端主機連線的速度而定,基本上起碼會浪費「一秒鐘」以上
所以想問有沒有套件或方法「砍掉」這個我覺得有點多餘的「連線檢查」過程
主要希望能在非離線模式下也能享受離線模式那種暢快感,雖然面對大眾的情況下
的確是需要檢查,但希望能讓使用者有選擇的權力,畢竟這個檢查的時間可是差很多
我懷疑 Opera 預設就是完全不檢查,所以快取存取速度超快若是的話,會讓使用者
產生 Opera 開網頁的速度很快的錯覺但其實任何瀏覽器只要略過這個檢查,開「舊」網頁的速度應該都是一樣
(除非對快取資料有做特殊處理,才會有差異)

順道一提,在讀取快取資料的速度上 Opera 曾經是佼佼者 (懷疑就是少了這個檢查連線)
不知現在如何了
AppNavi手机应用官方微博 介绍最新的密室逃脱游戏!
http://weibo.com/appnavi
dindog
千年狐狸
千年狐狸
  • UID30818
  • 注册日期2009-10-24
  • 最后登录2023-02-03
  • 发帖数1195
  • 经验59枚
  • 威望0点
  • 贡献值26点
  • 好评度10点
1楼#
发布于:2010-10-11 22:34
browser.cache.check_doc_frequency
看这项是不是,我没设置过,不过听上去应该是这项了

http://kb.mozillazine.org/Browser.cache ... _frequency
以前firefox跳个票的时间现在可以发布几个正式版了-_-
xxp2277
千年狐狸
千年狐狸
  • UID24388
  • 注册日期2008-05-31
  • 最后登录2024-03-28
  • 发帖数1513
  • 经验133枚
  • 威望0点
  • 贡献值46点
  • 好评度8点
  • 社区居民
2楼#
发布于:2010-10-11 22:34
dindog:browser.cache.check_doc_frequency
看这项是不是,我没设置过,不过听上去应该是这项了

http://kb.mozillazine.org/Browser.cache ... _frequency
回到原帖

设置为2就是完全不检查有无更新,直接从缓存载入。重新载入需刷新。
jnlyu
狐狸大王
狐狸大王
  • UID10304
  • 注册日期2005-12-04
  • 最后登录2015-06-17
  • 发帖数304
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
3楼#
发布于:2010-10-11 22:34
設置了那個參數沒用,一樣會先連線到遠端主機去。
AppNavi手机应用官方微博 介绍最新的密室逃脱游戏!
http://weibo.com/appnavi
xxp2277
千年狐狸
千年狐狸
  • UID24388
  • 注册日期2008-05-31
  • 最后登录2024-03-28
  • 发帖数1513
  • 经验133枚
  • 威望0点
  • 贡献值46点
  • 好评度8点
  • 社区居民
4楼#
发布于:2010-10-11 22:34
你试试新建一个标签页打开一个网页,然后关闭这个标签页,然后再打开刚才那个网页试试,对比默认的值很快了。
jnlyu
狐狸大王
狐狸大王
  • UID10304
  • 注册日期2005-12-04
  • 最后登录2015-06-17
  • 发帖数304
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
5楼#
发布于:2010-10-11 22:34
xxp2277:你试试新建一个标签页打开一个网页,然后关闭这个标签页,然后再打开刚才那个网页试试,对比默认的值很快了。回到原帖

試了,一樣會先連線到遠端主機才抓緩存資料
而就算成功了避開連線,這個方法的實用性並不高
我打開關閉復原網頁的方式都是通過快捷鍵 ( Ctrl+W、Shift+Ctrl+T)
AppNavi手机应用官方微博 介绍最新的密室逃脱游戏!
http://weibo.com/appnavi
kmc
kmc
管理员
管理员
  • UID165
  • 注册日期2004-11-25
  • 最后登录2022-09-22
  • 发帖数9186
  • 经验397枚
  • 威望1点
  • 贡献值124点
  • 好评度41点
  • 忠实会员
  • 终身成就
  • 社区居民
6楼#
发布于:2010-10-11 22:34
jnlyu:設置了那個參數沒用,一樣會先連線到遠端主機去。回到原帖

的确没用,只有离线工作模式有效。

好像Opera的快速后退有作弊的嫌疑吧,论坛发帖后后退,里面的内容就没有了,Firefox则还有。

这好像是Firefox坚持的一个东东,原来也见过很多这个讨论,但是从来没有看到Firefox改动过它。
Waterfox Current和Firefox Nightly都用,逐渐走出XUL扩展依赖
havanna
狐狸大王
狐狸大王
  • UID22502
  • 注册日期2008-01-01
  • 最后登录2015-10-20
  • 发帖数544
  • 经验14枚
  • 威望0点
  • 贡献值2点
  • 好评度0点
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似乎可以解决此类问题
游客

返回顶部