Javascript Chrome不显示在HTML页面中动态加载的外部JS文件的更新内容
我有以下简单的HTML和JS代码。当用户选择意大利语选项时,JS代码将动态加载外部JS文件Javascript Chrome不显示在HTML页面中动态加载的外部JS文件的更新内容,javascript,html,Javascript,Html,我有以下简单的HTML和JS代码。当用户选择意大利语选项时,JS代码将动态加载外部JS文件Language\u it.JS <html> <head> <script> function ChangePageLanguage() { var e = document.getElementById("langDD"); var lang = e.options[e.selectedIndex].value; if (lang == "it") { v
Language\u it.JS
<html>
<head>
<script>
function ChangePageLanguage()
{
var e = document.getElementById("langDD");
var lang = e.options[e.selectedIndex].value;
if (lang == "it")
{
var scrptE = document.createElement("script");
scrptE.setAttribute("type", "text/javascript");
scrptE.setAttribute("language", "JavaScript");
scrptE.setAttribute("src", "language_it.js");
var head = document.getElementsByTagName("head")[0];
head.appendChild(scrptE);
}
}
</script>
</head>
<body>
<select onchange="ChangePageLanguage()" id="langDD">
<option value="en">English</option>
<option value="it">Italian</option>
</select>
</body>
</html>
它在Firefox中运行良好,但如果我更改
语言\u It.js的内容,则Chrome
不会显示更新的内容,除非我在Chrome
中重新启动index.html页面。这个问题有什么解决方案吗?在Chrome上开发时,可以禁用缓存
- 按F12打开开发人员工具
- 在右下角,单击齿轮图标
- 选中“禁用缓存”
- 重新加载页面
如果在开发过程中只需要刷新.js文件,请按照Joseph的建议禁用缓存
如果每次调用JavaScript文件时都需要刷新该文件(例如,如果动态生成该文件),则可以向文件名添加唯一的查询字符串,这将导致浏览器每次检索该文件:
scrptE.setAttribute("src", "language_it.js?ticks=" + new Date().getTime());
如果缓存阻止脚本正确更新,或者需要在生产中始终取消缓存脚本,则始终可以执行以下操作:
scrptE.setAttribute("src", "language_it.js?" + (Date.now() % 10000));
这将附加一个基于时间的数字字符串,该字符串几乎总是在URI的末尾为您提供一个唯一的数字,这将阻止浏览器从缓存中检索文件。即使在禁用缓存后,它也只能工作一次。当我用第二个值测试它时,同样的问题@NidaSulheri首先尝试清除缓存(从“时间开始”按ctrl+shift+del),然后在开发人员工具中禁用缓存,然后加载页面。
scrptE.setAttribute("src", "language_it.js?" + (Date.now() % 10000));