【问题标题】:Force browser to download multiple script tag with same src强制浏览器下载具有相同 src 的多个脚本标签
【发布时间】:2013-01-16 21:06:10
【问题描述】:

我有一个类似的脚本标签

<div id='CommentBox'></div>
<script src="http://www.mywebsite.com/widget.js" type="text/javascript" />

这个 javascript 创建一个评论框。 (如脸书评论框)

但是当用户多次复制/粘贴相同的脚本标签时,Chrome 和 IE9 不会再次请求第二、第三个文件,因为它已被缓存。但实际上人们希望在同一页面中多次使用评论框。我怎样才能打破浏览器缓存并强制它下载尽可能多的人粘贴在他们的博客中?

【问题讨论】:

  • 您不必调用脚本两次。只需调用创建“评论框”的函数即可。不过,为了将来参考,您所指的是缓存破坏器。它通常由一个永远不会相同的生成数字组成(即时间戳)。
  • 我强烈建议您听从 Frits van Campen 的建议。对于您的特定情况,您不需要缓存破坏器。您不必多次检索脚本。对于造成的混淆,我深表歉意,但以上内容只是为您提供一个示例,说明如何在不让客户端缓存结果的情况下从服务器两次检索某些内容(例如图像)。

标签: javascript browser browser-cache


【解决方案1】:

你做错了。

如果您需要两个或更多注释框,只需调用代码两次。脚本包含类似于函数调用。

【讨论】:

  • 请注意,根据脚本的性质,您可能需要对脚本进行一些基本调查,以找出实际调用了哪些函数(即在包含的脚本中找到适当的函数调用),但这里的评论已经死了。
  • 我同意,但是如果文件中的代码将某些内容写入页面/在包含时自动运行怎么办?我不认为这对于 JS 文件来说是一个好的结构,但仍然......
【解决方案2】:

使用以下代码代替您编写的代码:

主 HTML 文件:

<html>

<head>
    <script src="http://www.mywebsite.com/widget.js" type="text/javascript" />
</head>

<body>

  <div id="CommentBox"></div> 

   <script type="text/javascript">
     Func1();
   </script>

 </body>

</html>

widget.js 文件:

function FUNC1(){
   alert("Hello");
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-26
    • 2012-05-15
    • 1970-01-01
    • 2015-12-13
    • 1970-01-01
    • 2015-12-09
    • 2012-07-24
    相关资源
    最近更新 更多