gpt4 book ai didi

javascript - 加载每个静态页面时重新加载相同的 javascript 文件

转载 作者:行者123 更新时间:2023-12-02 16:05:39 24 4
gpt4 key购买 nike

我有一些静态 html 页面。所有这些页面都有以下内容

<script src="my-javascript.js"></script>

我不希望浏览器缓存 JavaScript 文件,并且希望在每个页面加载时重新加载它。

经过网上搜索,发现了这个技巧:在每个页面添加以下内容

<script src="my-javascript.js?p=changing_value"></script>

如果这可行,我如何在静态 html 页面(不是 PHP、JSP 等)中生成“change_value”。

或者其他一些解决方案可以在所有页面的每个页面加载时强制重新加载 javascript 文件?

谢谢!

更新

我无权访问服务器配置。

最佳答案

After online search, I found that this trick: adding the following to each page

更好的解决方案是使用缓存 header 告诉浏览器不要缓存文件。配置您的服务器以提供该文件:

Cache-Control: no-cache
Expires: -1

无论如何,这些都是基本的。

If this is going to work, how can I generate the "changing_value" in a static html page (not PHP, JSP, etc.).

如果您想走查询字符串路线,只是为了完整性:

您可以从Math.random()获取随机值,或as Hemadeus points out ,使用时间戳值。

如果您需要阻止脚本加载(就像通常的脚本标签一样),这是 document.write 的少数剩余用例之一:

<script>
document.write('<script src="my-javascript.js?' + Math.random() + '"><\/script>');
</script>

(或者将 Math.random() 替换为 Date.now() 以使用时间戳)

如果您不需要它被阻塞,那么使用 createElement 创建元素可能会更干净:

<script>
(function() {
var s = document.createElement('script');
s.src = "my-javascript.js?" + Math.random();
document.querySelector("head").appendChild(s);
})();
</script>
<小时/>

旧浏览器不会有Date.now。您可以从 new Date().getTime() 获取相同的值。

关于javascript - 加载每个静态页面时重新加载相同的 javascript 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30787017/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com