Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Firefox未重新验证子帧中的静态文件_Firefox_Caching - Fatal编程技术网

Firefox未重新验证子帧中的静态文件

Firefox未重新验证子帧中的静态文件,firefox,caching,Firefox,Caching,我正在使用一个具有iframe的应用程序——外部html主体和框架都需要特定的javascript和CSS文件。为了减少加载时间,所有这些静态文件的过期时间都设置为一年后,基本上应该从缓存中加载,以获得正常的页面点击量,这是IE8和FF3.6中的预期行为 但是,一旦我重新加载/刷新(F5)页面,我希望浏览器向服务器发送“If Updated Since”请求以获取这些文件。IE8发送对iframe内外使用的所有文件的请求。但是,FF3.6只发送对外部使用的文件的请求(不是对iframe中使用的文

我正在使用一个具有iframe的应用程序——外部html主体和框架都需要特定的javascript和CSS文件。为了减少加载时间,所有这些静态文件的过期时间都设置为一年后,基本上应该从缓存中加载,以获得正常的页面点击量,这是IE8和FF3.6中的预期行为

但是,一旦我重新加载/刷新(F5)页面,我希望浏览器向服务器发送“If Updated Since”请求以获取这些文件。IE8发送对iframe内外使用的所有文件的请求。但是,FF3.6只发送对外部使用的文件的请求(不是对iframe中使用的文件,它只是从缓存中加载这些文件!)

所有文件的响应头都完全相同,无论它们是否在iframe中。FF的这种行为有什么原因吗?有办法避免吗


注意:我可以在源代码中添加版本参数,或者在路径中添加版本文件夹,等等。但是,我想知道这个怪癖是否可以避免/背后是否有充分的理由?

Firefox行为正常-服务器指示脚本可以使用一年,因此没有理由发送浪费时间的毫无意义的请求,带宽和服务器资源。出于调试目的,您可以在单击“重新加载”按钮时按住Shift键,以确保刷新所有数据。但是,对于向URL添加版本信息的最终用户(例如
http://example.com/.../script.js?version=1.2.3
)可能是最好的解决方案。这确保只要缓存的版本有效,就可以使用它,并且在更新脚本后立即下载新版本。

不,FF对不在iframe中的文件执行正确的操作。在F5上,我请求浏览器刷新,它确实会发送一个“If Updated Since”请求,请求在iframe之外的JS和CSS文件,以查看文件是否已更新——它也应该对iframe内容执行此操作。Ctrl+F5甚至不会使用“如果自更新”,它将使用max age=0进行缓存控制,这将始终从服务器生成新文件。但是,是的,我在构建过程中向静态文件源添加了一个GET参数,这很像StackOverflow。