【问题标题】:Reload javascript file realtime实时重新加载javascript文件
【发布时间】:2014-09-16 18:18:56
【问题描述】:

我目前正在使用一个使用 js、css 和 php 文件的平台。

我希望能够实现的是强制设备仅重新加载特定的 Javascript 文件。

如果我对服务器上的 js 文件进行更改,我不希望仅仅为了加载 javascript 更改而重启设备。

例如,如果在这些页面之一的函数中我有一个 alert('1'); 并且我希望将其更改为 alert('2'); 我不想重新加载整个设备

我尝试了一些 javascript 更新脚本,将文件添加到带有当前时间戳标记的 head 元素中。这似乎不起作用,我认为它会下载文件但仍继续使用旧文件。

如果这真的很模糊,我很抱歉。请提出任何问题,我会尽力回答他们

【问题讨论】:

标签: javascript


【解决方案1】:

您可以创建一个每次“打电话回家”的功能,并获得它需要做的事情。

对于您的示例,您可以创建一个生成 XmlHttpRequest 的函数,并且您的服务器会给它一个值“1”或“2”。

为了扩展,你也可以让你的服务器返回一段javascript代码,然后eval它,但请记住,通常使用eval是个坏主意(参见Why is using the JavaScript eval function a bad idea?

【讨论】:

    【解决方案2】:

    这样怎么样,此时你需要选择一个js文件来执行,你通过XMLHttpRequest请求代码。代码将作为字符串返回。然后使用 eval(code) 来执行它。 例如,eval("alert('2')");
    但是,eval 是邪恶的..

    【讨论】:

      【解决方案3】:

      试试这个 - 对我有用。但请记住将此代码作为正文的最后一部分放在您的 html 中。

      <script type="text/javascript" language="javascript">  
          var versionUpdate = (new Date()).getTime();
          var myscript = document.createElement("SCRIPT");  
          myscript.type = "text/javascript";  
          myscript.src = "scripname.js?v=" + versionUpdate;  
          document.body.appendChild(myscript);
      </script>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-03-23
        • 1970-01-01
        • 2012-06-15
        • 2014-03-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-10-14
        相关资源
        最近更新 更多