如何在静态HTML文件中添加JS包含的动态时间戳



所以我有一个有趣的问题。我有一个静态网站,其中包含一些包含javascript的HTML文件。有没有一种方法可以为这些JS文件添加一个动态时间戳,以覆盖缓存并获取最新版本。

类似:

<script async src="://main.lib.js?ts=1606903654"></script>

早些时候我可以这样做,因为HTML是使用PHP动态生成的。现在已经不是这样了,我想知道我该怎么做。

任何建议都很好!

使用JS创建脚本元素并将其附加到HEAD。

var head = document.getElementsByTagName("head")[0];
var script = document.createElement("script");
script.src = "://main.lib.js?ts=" + new Date().getTime();
script.async = "async";
head.appendChild(script);

扩展@alexP的答案,使时间戳最多保持一小时不变。

var head = document.getElementsByTagName("head")[0];
var script = document.createElement("script");
script.src = "://main.lib.js?ts=" + Math.floor((new Date()).setMinutes(0) / 100000);
script.async = "async";
head.appendChild(script);

但是,我不确定缓存是否有效,因为它取决于您随js文件发送的头。简单地说,如果缓存工作,那么您就不需要这个时间戳

最新更新