【问题标题】:How to update javascript file in client browser?如何在客户端浏览器中更新 javascript 文件?
【发布时间】:2011-03-27 20:01:25
【问题描述】:

当我在 javascript 文件中出现错误时,我会修复它并进行部署。 但是要在浏览器中更新文件,我应该按 Ctrl+F5。

这对我来说不是问题,但很难告诉用户更新文件。

如何使用户浏览器无需特殊操作即可从服务器更新 javascript 文件?

其中一种方法是添加到文件的 js 文件修订的路径 - 每次文件路径都会不同。但这并不方便。

【问题讨论】:

    标签: javascript browser-cache


    【解决方案1】:

    许多网站所做的就是在指向 javascript 文件的 URL 上添加一个 URL 参数,并在每次文件更改时更改它。

    类似这样的:

    <script langauge="javascript" src="myfile.js?ver=1" />
    

    在改变之后:

    <script langauge="javascript" src="myfile.js?ver=2" />
    

    这可能不方便,但它是最常见的解决方案。一些 Web 框架会自动执行此过程,因此开发人员不必手动增加版本号。

    【讨论】:

    • 例如/path/to/javascript.js?123456789
    • 谢谢。只有一个缺点是在部署时更新所有 js 文件包含。
    • @sergdev - 如果您对所有文件使用相同的版本号,您可以使用搜索替换...
    • 考虑这个用例:如果用户打开了一个网页并且空闲了 10 分钟……同时,你更新了一个 JS 文件。你将如何将新的 JS 文件推送到客户端而不进行任何操作?
    • @Viral - 我不会,不会这样。如果这是一个真正的需求,可以通过长时间轮询服务器来检查和替换文件(通过适当的检查,确保发生这种转换时客户端不会中断)。
    【解决方案2】:

    在末尾添加一个随机查询字符串,就像 SO 一样;)

    <script type="text/javascript" src="http://sstatic.net/js/master.min.js?v=d761eb59f537"></script>
    

    【讨论】:

      【解决方案3】:

      最好的方法是用 javascript 更改文件名。我正在添加版本号来做到这一点:例如,我将 scripts1.2.js 更改为 scripts1.3.js

      【讨论】:

        【解决方案4】:

        只需将任何参数添加到 url

        mysite/javascript/myscript.js?ver=1
        

        并使用新版本检查此参数。

        【讨论】:

          猜你喜欢
          • 2016-07-04
          • 2011-10-15
          • 2020-09-23
          • 1970-01-01
          • 2021-08-20
          • 2021-04-23
          • 1970-01-01
          • 2010-10-19
          相关资源
          最近更新 更多