Google chrome 如何使用Firefox或Chrome编辑缓存文件上的数据大小?

Google chrome 如何使用Firefox或Chrome编辑缓存文件上的数据大小?,google-chrome,firefox,caching,size,Google Chrome,Firefox,Caching,Size,重现问题的步骤: 第1步:假设您已清理了浏览器(firefox)上的缓存历史记录 第2步:在浏览器上键入www.stackoverflow.com,可以在缓存文件夹中获取一些新数据 第3步:在浏览器上键入“缓存:关于” 步骤4:单击“磁盘缓存设备/列出缓存项” 步骤5:我搜索一些已下载到缓存文件夹的“.png”文件。注意,数据大小实际上是16425字节 步骤6:复制图像存储在计算机上的路径 第7步:在继续解决问题之前,我通过单击此链接快速查看图像的外观 步骤8:检查图像 第9步:启动/运行/并

重现问题的步骤:

  • 第1步:假设您已清理了浏览器(firefox)上的缓存历史记录

  • 第2步:在浏览器上键入www.stackoverflow.com,可以在缓存文件夹中获取一些新数据

  • 第3步:在浏览器上键入“缓存:关于”

  • 步骤4:单击“磁盘缓存设备/列出缓存项”

  • 步骤5:我搜索一些已下载到缓存文件夹的“.png”文件。注意,数据大小实际上是16425字节

  • 步骤6:复制图像存储在计算机上的路径

  • 第7步:在继续解决问题之前,我通过单击此链接快速查看图像的外观

  • 步骤8:检查图像

  • 第9步:启动/运行/并粘贴我们最近复制的路径,图像已存储在您的系统中

  • 第10步:这是图片!但我们必须手动键入“.png”

  • 第11步:我看一下它的样子:

  • 第12步:我编辑图像,希望更改文件大小,并使其与浏览器缓存的真实图像大小不同。因此,我将图像缩小并保存

  • 第13步:我检查文件大小是否确实发生了变化。 以前是17kb,现在是3kb

  • 步骤14:我删除了添加到文件名中的“.png”文本,以便浏览器可以读取它

  • 第15步:现在我在浏览器上按重新加载,文件不会被读取

预期结果: -为了便于理解,我在示例中使用了“.png”,但得到的结果不同。在我真正的问题上,amb试图让缓存读取一个FLASH.swf文件,我已经将其更改为原始数据大小。。
有什么想法吗?链接?我在互联网上找不到关于如何告诉浏览器再次读取已下载文件的信息,即使大小已更改

关键是,如果缓存了服务器,客户端将不会再次检查服务器,直到(如果)该元素的缓存过期。将HTTP头上的最长时间设置为10分钟,例如,如果自上次下载以来已超过10分钟,客户端将重新下载它。无法仅因为大小已更改而更新。除非您有一个JS或ajax或其他东西,它将根据客户端检查服务器以查看是否有最近的更改时检索到的某个结果来更新客户端缓存,否则这是不可能的

因此,如果您必须拥有它,那么您必须根据服务器上的现有数据跟踪服务器上发生的更改。例如,服务器跟踪初始大小。如果您更改了图像大小(或者假设web应用程序中的某些内容更改了图像大小),服务器将知道服务器上的图像大小已更改(因为服务器上的图像大小也将始终保持不变)。因此,在下载图像时,您还需要使用cookie或html5 localStorage跟踪客户端上的图像大小

因此,脚本的客户端部分请求服务器加载页面(也发送存储在cookie或localStorage中的图像大小),然后服务器脚本将比较当前图像的大小和客户端发送的大小。如果不同,则会显式终止客户端缓存,这意味着客户端必须显式重新下载映像。否则它什么也不做,只使用缓存的图像


因此,如果您需要这种功能,基本上您需要像对待登录cookiet一样对待您的图像(服务器显式跟踪图像、使其过期、设置新图像、使其过期等)。

我也遇到了同样的问题,最终找到了解决办法,这要归功于此线程

这只适用于firefox。 转到关于:config 将变量“browser.cache.check_doc_frequency”(默认值3)编辑为2 ()

在缓存目录中编辑文件。(新尺寸是否不同并不重要!) 无需更改chache_001中的文件大小条目

希望这对你有帮助

编辑:只需确保文件大小小于swf文件的原始大小

原因:我真的不知道,但当我尝试为一个在线游戏编辑swf时,游戏无法再加载新的缓存文件(比如firefox为这个东西保留x个内存字节,x是由服务器指定的..但是文件大于x个字节,所以不会加载整个文件,flash电影也不会加载)


我将swf中的一些图像编辑为相同大小的空白图像,重新编译并重新压缩,以获得比原始swf更小的文件大小,并且成功了

没有男人,无论如何谢谢你的尝试!如果您主动更改浏览器缓存的某些“swf”文件的数据大小。然后按“重新加载”,它现在什么也得不到。我希望能找到一个明白我意思的大师。如果一开始图像有100Kb,我不能用paint将其更改为不同的颜色,但我必须始终将其保存为100Kb,如果它的大小更大,浏览器就会消失。。还有其他答案吗?谢谢,我认为您必须更改数据库缓存文件blob条目以获得新的大小。如果它使用的是完全相同的大小,那么您可能只需更改数据库文件中该缓存项的大小条目,使其与新文件大小完全匹配即可。在某些浏览器中,还必须将图像数据嵌入数据库文件中。我相信你需要特殊的SQLite编辑软件来完成这项工作。请给我一些名字,这些名字会在你脑海中出现,我想我知道你的意思。在Firefox中,您没有