【发布时间】:2019-11-03 20:09:19
【问题描述】:
更新:这是一个内存缓存问题,Firefox 和 Chrome 在每次页面刷新时都从内存缓存中提取 properties.js 文件,而不是从服务器下载新版本。 cmets 下面的网络选项卡提示让我看到了这种行为。谢谢!
如下在 HTML 文件中使用元标记完全没有帮助:
<meta http-equiv=“Pragma” content=”no-cache”>
<meta http-equiv=“Expires” content=”-1″>
<meta http-equiv=“CACHE-CONTROL” content=”NO-CACHE”>
我正在开发一个包含多个 HTML5 页面的 UI 仪表板,这些页面显示的值每隔几分钟就会发生变化。这些值来自我使用 JQ 解析然后使用 bash 更新 properties.js 文件的 API。多个 HTML5 页面 src 此 properties.js 文件为 HTML5 页面中的 JavaScript 变量赋值。
问题是,这适用于第一个 HTML5 页面,但第二个 HTML5 页面没有获取值。如果我注释掉第一页的“src”行,第二页就会得到这些值。似乎我这样做的方式仅适用于将值填充到单个 HTML5 页面中。我宁愿不克隆每个 HTML 页面的属性文件。我正在尝试找到一种方法让所有 HTML5 页面从单个 properties.js 文件中填充值。
[FILE1.HTML]
<head>
...
<script type="text/javascript" src="./properties.js"></script>
...
</head>
<body>
...
<main>
...
<div class="text-value" id="ts1_info.var1"></div>
...
<script type="text/javascript">
document.getElementById("ts1_info.var1").innerHTML = ts1_info.var1;
</script>
...
</main>
</body>
[FILE2.HTML]
<head>
...
<script type="text/javascript" src="./properties.js"></script>
...
</head>
<body>
...
<main>
...
<div class="text-value" id="ts1_info.var1"></div>
...
<script type="text/javascript">
document.getElementById("ts1_info.var1").innerHTML = ts1_info.var1;
</script>
...
</main>
</body>
[PROPERTIES.JS]
var ts1_info;
ts1_info = {
var1: "my_value",
...
;
[文件层次结构]
page1.html
|
|_ page2.html
|_ properties.js
在 page1.html 中,src 行会下降 1 级:
<script type="text/javascript" src="./sub_directory/properties.js"></script>
在 page2.html 中 src 行将进入同一级别:
<script type="text/javascript" src="./properties.js"></script>
【问题讨论】:
-
导入 js 文件应该适用于任何数量的 html 页面。当您单击从一页到下一页的链接时是否会出现问题,或者即使您直接转到第二页,变量也将不可用?
-
当我在 FILE1.HTML 中使用与在 FILE2.HTML 中相同的代码为变量赋值时,它适用于第一个文件,但第二个文件中的值仍然为空。我正在使用的一个工作循环是将properties.js 克隆为另一个名称,如properties2.js。当 page2.html 在 src 行中具有唯一的文件名时,一切正常。只有当我在多个 html 文件中的 src 行中使用“相同”文件名时才会出现问题。
-
我的理解是您正在尝试从 FILE1.html 设置 properties.js 中的变量并在 FILE2.html 中访问这些设置值。如果那是你想要做的,它不会起作用。
-
不,这不是我想要的。我正在做的是使用 bash/jq/APIs 创建单个 JavaScript 文件,其中包含多个键值对,多个 HTML5 页面将使用这些键值对来为变量赋值。 bash/jq/API 每分钟运行一次并更新 properties.js 文件中的值,这反过来又会在页面刷新时反映 HTML5 页面中的更新值。
-
嗯...是的,这对我来说没有任何意义,为什么这不起作用。检查 devtools 中的 Network 选项卡,看看第二个页面是否正在接收文件。
标签: javascript html variables src