Javascript:如果从HTML的body调用Javascript,它是否会被缓存?

3

问题!

我在HTML的部分中调用了一个JS函数,该函数的参数是通过解析函数内部的EL获得的。

例如:

<script type="text/javascript">
    jQuery(window).load(function() {
        loadImage("${expression_language_var_1}", "${expression_language_var2}");
    });
</script>

但有时似乎两个参数都被缓存了,我会收到旧的信息。

问题!

  • HTML结构中的脚本标签是否与包含在标题中的外部JavaScript文件一样被缓存?

最好的问候,


2
不行。但是HTML页面本身可以被缓存,当然嵌入的脚本标签也可以被缓存。 - dfsq
@dfsq:有没有办法确保缓存不会发生,至少对于那个特定的js函数调用? - Eder
1个回答

1
问题在于整个HTML页面都被缓存了,包括包含你的EL求值的脚本标记。如果您使用以下头标记提供页面,则浏览器不应将其缓存:
<meta http-equiv="cache-control" content="max-age=0" />
<meta http-equiv="cache-control" content="no-cache" />
<meta http-equiv="expires" content="0" />
<meta http-equiv="expires" content="Tue, 01 Jan 1980 1:00:00 GMT" />
<meta http-equiv="pragma" content="no-cache" />

关于这些头部如何禁用缓存的更多细节,请参考此答案:如何使用<meta>标签在所有浏览器中关闭缓存?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接