Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.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
当更改未在HTML中完成时,如何从缓存加载javascript文件?_Javascript_Jquery_Html_Caching_Optimization - Fatal编程技术网

当更改未在HTML中完成时,如何从缓存加载javascript文件?

当更改未在HTML中完成时,如何从缓存加载javascript文件?,javascript,jquery,html,caching,optimization,Javascript,Jquery,Html,Caching,Optimization,我将时间戳值附加到javascript文件中,以便在每次加载页面时从服务器加载新副本 <script>document.write("<script type='text/javascript' src='Script1.js?v=" + Date.now() + "'><\/script>");</script> <script>document.write("<script type='text/javascript' src

我将时间戳值附加到javascript文件中,以便在每次加载页面时从服务器加载新副本

<script>document.write("<script type='text/javascript' src='Script1.js?v=" + Date.now() + "'><\/script>");</script>
<script>document.write("<script type='text/javascript' src='Script2.js?v=" + Date.now() + "'><\/script>");</script>
document.write(“”);
文件。填写(“”);

但我想在javascript文件发生更改时从服务器加载新副本。当javascript文件中未完成更改时,我希望从缓存加载javascript文件。如何做到这一点?

您可以简单地使用增量数字,而不是日期-您有
src='Script1.js?v=“+date.now()
简单地
Script1.js?v=1
v=2
等等。我知道这听起来很乏味,但浏览器在不重新加载远程脚本的情况下,究竟应该如何知道远程脚本已经更改?因此,您必须帮助浏览器仅在具有新版本号时重新加载文件。@davidkonrad,我如何识别服务器中的脚本文件是否已更改作业应使浏览器和服务器保持一致。当特定文件发生更改时,服务器通常会将信息发送到浏览器,因此,如果浏览器具有最新版本,则可以跳过加载already@Daniel,当用户手动清除浏览器缓存时,只有他/她才能在浏览器中获得最新的javascript文件更改。浏览器将如何识别最新版本?@RG至少它应该是这样工作的