Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/394.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
Javascript:检测请求的文件是否缓存,如果存在较新版本,则删除缓存_Javascript_Caching - Fatal编程技术网

Javascript:检测请求的文件是否缓存,如果存在较新版本,则删除缓存

Javascript:检测请求的文件是否缓存,如果存在较新版本,则删除缓存,javascript,caching,Javascript,Caching,我的目标是——每当客户端请求html页面或pdf文件时,javascript都应该检查该文件之前是否已被请求过,并因此被缓存。 如果缓存的文件与服务器上的当前文件不匹配(校验和?),则应清除缓存的文件 这只能用Javascript完成,不能使用PHP或.htaccess魔法。这不是Javascript程序员的任务,不能做这样的事情。这是浏览器管理缓存的责任 作为程序员(在本例中为服务器端程序员),您唯一的责任是使浏览器能够区分文件版本。最常见的方法是向资源url添加一个随机字符串,并在每次资源更

我的目标是——每当客户端请求html页面或pdf文件时,javascript都应该检查该文件之前是否已被请求过,并因此被缓存。 如果缓存的文件与服务器上的当前文件不匹配(校验和?),则应清除缓存的文件


这只能用Javascript完成,不能使用PHP或.htaccess魔法。

这不是Javascript程序员的任务,不能做这样的事情。这是浏览器管理缓存的责任


作为程序员(在本例中为服务器端程序员),您唯一的责任是使浏览器能够区分文件版本。最常见的方法是向资源url添加一个随机字符串,并在每次资源更改时更改它。当浏览器看到一个新的url时,它会下载资源

浏览器会自动执行此操作。为什么需要JS为你做这些?好吧,在我的情况下不是。如果我重新加载该网站,它会检查新版本,但仅在这种情况下。您可能想知道,这是协作浏览器和服务器如何在不受您任何干预的情况下验证缓存文件的一部分。你可以通过在URL末尾附加一个唯一的查询参数来强制下载新版本。你可以看看,我在这里列出了防止缓存的方法,还有另一篇关于缓存破坏的文章,这是我以前一直在尝试的,它通常对html文件有效(我只是再次检查),但对PDF文件有效(此webproject主要由PDF文件组成)这不正常。我只是再次尝试,更改随机字符串有效,但浏览器没有加载新的PDF。可能PDF文件,因为它们通常比html文件大得多,有不同的缓存规则?如果PDF文件加载到Adobe插件中,则浏览器不会仅通过更改url下载新文件-您必须检查Adobe插件是否有任何可用于javascript的API(谁知道呢,也许)。一般来说,展示代码,然后我可能可以为您提供更多帮助。