飞雪尔
火狐狸
火狐狸
  • UID3039
  • 注册日期2005-02-15
  • 最后登录2021-06-27
  • 发帖数288
  • 经验51枚
  • 威望0点
  • 贡献值32点
  • 好评度0点
  • 忠实会员
阅读:8119回复:22

机制上没办法从缓存另存图片?

楼主#
更多 发布于:2008-01-15 23:17
大家应该都知道,从firefox诞生到目前的3.0 beta版本,对于网页图片的另存为,一直都是使用重新下载的方式,而不是IE那种直接从缓存copy再另存为的方式。
IE的缓存文件夹是直接保存图片文件的,所以实现另存为很简单,只要把缓存中相应的图片复制一下就行了。
但是fx的缓存是一个fx单独的打包的格式,缓存中并不存在显性的图片文件。

难道真的就没有办法从缓存中提取图片直接另存为?而非要现在这样根据图片地址,重新用下载管理器来下载?要知道对于很多图片网站,特别是有很多大图的网站,用这种方式真的是非常浪费时间,本来图片打开就慢,等另存为又要重新下载一次,纯粹是浪费时间。
本来还以为3.0能够解决这个问题,哎,还是失望。
用技术呈现美丽
www.21show.com
kmc
kmc
管理员
管理员
  • UID165
  • 注册日期2004-11-25
  • 最后登录2022-09-22
  • 发帖数9186
  • 经验397枚
  • 威望1点
  • 贡献值124点
  • 好评度41点
  • 忠实会员
  • 终身成就
  • 社区居民
1楼#
发布于:2008-01-15 23:17
我不太清楚你说的是不是对的,我刚才找了一张1MB的大图
打开它大概需要10秒左右,打开它之后,我把下载管理器打开,跟Firefox主窗口并排放置,点击右键保存图片——下载管理器中的任务没有任何下载进度,直接提示下载完成。

那么,如果Firefox是重新去网站下载这个图片,如何解释首次打开要5秒,保存时没有任何延迟?

再一个实验,打开另一张1MB的大图
完全打开后,把Firefox切换到脱机状态(文件-脱机工作),这时保存图片,按楼主说的,应该会提示保存图片失败,因为没有联网啊,事实上呢?大家完全可以试试。

不过我同意的是Firefox的缓存的确是打包格式,不知道是不是出于防病毒、恶意代码的考虑,但要下载个什么flv是挺麻烦的。用我上面的方法能离线下载下来图片,却不能离线下载下来flv
Waterfox Current和Firefox Nightly都用,逐渐走出XUL扩展依赖
nightwind
火狐狸
火狐狸
  • UID17949
  • 注册日期2007-04-11
  • 最后登录2017-09-05
  • 发帖数271
  • 经验58枚
  • 威望0点
  • 贡献值54点
  • 好评度2点
  • 社区居民
  • 忠实会员
2楼#
发布于:2008-01-15 23:17
FF肯定是从缓存里读取下载过的图片啊
不会重新下载啊
缓存设置大点儿试试呢
苹果及DELL代理,有需要联系,Cuixiaodi.com
ferret
千年狐狸
千年狐狸
  • UID21816
  • 注册日期2007-11-11
  • 最后登录2013-03-22
  • 发帖数1114
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
3楼#
发布于:2008-01-15 23:17
和2L不同的是 我的下载窗口是有文件列表的,不过我也感觉没从服务器下载,因为有时保存几M的图片也是瞬间就完成了. 以我2M的带宽来说,即使右键另存为以后firefox已经在后台预先开始下载了,也不可能这么快就完成.

这里有张6M大小的图片,比1M的更容易分辨,lz可以试试看
http://kobe1995.jp/~kaz/astro/pic/imgp0299.jpg

而且,如果图片很多的话,为什么不用批量下载呢...
hill
狐狸大王
狐狸大王
  • UID4423
  • 注册日期2005-03-26
  • 最后登录2020-09-09
  • 发帖数344
  • 经验131枚
  • 威望0点
  • 贡献值90点
  • 好评度3点
  • 社区居民
  • 忠实会员
4楼#
发布于:2008-01-15 23:17
lz是不是在使用鼠标拖拽的扩展。
超级47
火狐狸
火狐狸
  • UID10550
  • 注册日期2005-12-13
  • 最后登录2017-03-08
  • 发帖数192
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 社区居民
5楼#
发布于:2008-01-15 23:17
楼主的意思是如何从 fx 的缓存文件中提取图片, 就像IE那样.
idragonet
千年狐狸
千年狐狸
  • UID15658
  • 注册日期2006-11-12
  • 最后登录2017-11-15
  • 发帖数2642
  • 经验162枚
  • 威望1点
  • 贡献值74点
  • 好评度118点
  • 社区居民
6楼#
发布于:2008-01-15 23:17
对!对于缓存已经有的图片在保存图片时Firefox还是从网站下载,特别用国外代理看图,这个问题很影响速度。。。
xelnaga
千年狐狸
千年狐狸
  • UID1911
  • 注册日期2005-01-08
  • 最后登录2022-04-20
  • 发帖数1725
  • 经验85枚
  • 威望0点
  • 贡献值8点
  • 好评度5点
  • 社区居民
7楼#
发布于:2008-01-15 23:17
虽然具体FX缓存怎么搞得我不知道
但是你可以尝试清空缓存再打开一张稍微大点的图片的页面(清空缓存是为了容易分辨缓存里的东西)
缓存里一直会有4个以_CACHE_开头的文件
另外有些无意义的文件名的文件,试试拷出来加个jpg、gif或者png看看
我以前做下来的情况是比较小的图片是找不到的,大点的图片能找到,然后类似flv这种文件,加个后缀名以后也可以正常播放(youtube、土豆我最常上,flv都可以从缓存拷)
同时注意到4个以_CACHE_开头的文件当清空缓存时体积会变小,所以我怀疑一些小文件以某种形式存在了这4个文件里
所以我一直认为fx的缓存对大部分文件就只是去掉后缀修改文件名而已,不是什么大不了的加密啦、打包啦

再来看另存图片,昨天我就收了很多大图,当时是BT、EMULE都开着在收图,1M带宽,打开图片是很慢(1张图要个几分钟),但是另存图片基本1秒左右(会出现下载管理器,完成然后自动关闭),根本不可能是重新去下载的
但是同时也有一个现象,在我这里以大约不到50%几率发生(多发在收国外网站图片),就是FX已经装载完一张图,我另存为,下载管理器中进度条会以令人匪夷所思的慢速增长,然后卡在那里一会儿,再次瞬间显示完成,然后脱机的话,可以直接瞬间完成,很难理解,这让我有个想法,FX在联网时是否会对进行一些校验的工作?

不过就脱机可以保存这点来说,肯定可以从缓存中另存图片

同时也如6楼所说,用代理时是有发生重新下载图片的事情(没有注意过是否百分百发生)
idragonet
千年狐狸
千年狐狸
  • UID15658
  • 注册日期2006-11-12
  • 最后登录2017-11-15
  • 发帖数2642
  • 经验162枚
  • 威望1点
  • 贡献值74点
  • 好评度118点
  • 社区居民
8楼#
发布于:2008-01-15 23:17
ferret:和2L不同的是 我的下载窗口是有文件列表的,不过我也感觉没从服务器下载,因为有时保存几M的图片也是瞬间就完成了. 以我2M的带宽来说,即使右键另存为以后firefox已经在后台预先开始下载了,也不可能这么快就完成.

这里有张6M大小的图片,比1M的更容易分辨,lz可以试试看
http://kobe1995.jp/~kaz/astro/pic/imgp0299.jpg

而且,如果图片很多的话,为什么不用批量下载呢...
回到原帖



这里有张6M大小的图片,比1M的更容易分辨,lz可以试试看
http://kobe1995.jp/~kaz/astro/pic/imgp0299.jpg

我试过了先在浏览器打开图片(大约30~40秒)然后再保存图片,保存时间大约要6-7秒,这就肯定Firefox不是从缓存文件读取图片保存,否则1秒就能搞定了,应该是用了一些内存缓存加速。
kmc
kmc
管理员
管理员
  • UID165
  • 注册日期2004-11-25
  • 最后登录2022-09-22
  • 发帖数9186
  • 经验397枚
  • 威望1点
  • 贡献值124点
  • 好评度41点
  • 忠实会员
  • 终身成就
  • 社区居民
9楼#
发布于:2008-01-15 23:17
关于那张6M的图片,我打开需要大概1分钟,保存需要一瞬间。
Waterfox Current和Firefox Nightly都用,逐渐走出XUL扩展依赖
plumxp
狐狸大王
狐狸大王
  • UID63
  • 注册日期2004-11-22
  • 最后登录2023-08-02
  • 发帖数375
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 社区居民
10楼#
发布于:2008-01-15 23:17
可能是这样的,Firefox在保存图片的时候先访问原地址,与缓存中的图片对比(需要花费时间但是比重新下载要快),如果是一样的就直接另存,如果不是一样的就重新下载。

所以,如果图片的原始链接改变或者连不上网,就不能下载。
98118
禁止发言
禁止发言
  • UID75
  • 注册日期2004-11-23
  • 最后登录2018-05-22
  • 发帖数1271
  • 经验-126枚
  • 威望0点
  • 贡献值-352点
  • 好评度-213点
  • 社区居民
  • 忠实会员
11楼#
发布于:2008-01-15 23:17
用户被禁言,该主题自动屏蔽!
飞雪尔
火狐狸
火狐狸
  • UID3039
  • 注册日期2005-02-15
  • 最后登录2021-06-27
  • 发帖数288
  • 经验51枚
  • 威望0点
  • 贡献值32点
  • 好评度0点
  • 忠实会员
12楼#
发布于:2008-01-15 23:17
ferret:和2L不同的是 我的下载窗口是有文件列表的,不过我也感觉没从服务器下载,因为有时保存几M的图片也是瞬间就完成了. 以我2M的带宽来说,即使右键另存为以后firefox已经在后台预先开始下载了,也不可能这么快就完成.

这里有张6M大小的图片,比1M的更容易分辨,lz可以试试看
http://kobe1995.jp/~kaz/astro/pic/imgp0299.jpg

而且,如果图片很多的话,为什么不用批量下载呢...
回到原帖


我试过这张图片了,我现在公司,用了foxproxy代理。打开图片的速度还可以,但是下载保存,并没有一瞬间的事情,虽然显示的速度有200多KB,但是还是持续了10秒左右,和我打开这张图的时间差不多。

这个就奇怪了,我在公司和家里都碰到过会重新下载的。不过也碰到过重新下载速度很快的。这个东西感觉捉摸不定。
用技术呈现美丽
www.21show.com
飞雪尔
火狐狸
火狐狸
  • UID3039
  • 注册日期2005-02-15
  • 最后登录2021-06-27
  • 发帖数288
  • 经验51枚
  • 威望0点
  • 贡献值32点
  • 好评度0点
  • 忠实会员
13楼#
发布于:2008-01-15 23:17
hill:lz是不是在使用鼠标拖拽的扩展。回到原帖


我家里确实用了,但是公司没用过,也有同样的问题。这个和鼠标拖拽有关?不会吧,我是右键另存为的。
用技术呈现美丽
www.21show.com
kmc
kmc
管理员
管理员
  • UID165
  • 注册日期2004-11-25
  • 最后登录2022-09-22
  • 发帖数9186
  • 经验397枚
  • 威望1点
  • 贡献值124点
  • 好评度41点
  • 忠实会员
  • 终身成就
  • 社区居民
14楼#
发布于:2008-01-15 23:17
那是不是跟缓存的大小有关?楼上几位做实验前把缓存全部清空了不?
Waterfox Current和Firefox Nightly都用,逐渐走出XUL扩展依赖
上一页
游客

返回顶部