如何在不重新加载页面的情况下重新加载Jquery或Javascript函数

时间:2014-06-06 10:45:08

标签: javascript jquery ajax html5

是否可以单独重新加载JavaScript或Jquery函数,或者是否可以每30秒重新加载外部Javascript文件,而不是重新加载页面。

2 个答案:

答案 0 :(得分:7)

编辑:我编辑了我的答案,因为显然仍有一些人看到并使用了这个。我添加了一个回调,在getScript正常工作30秒后触发重新加载。您可能希望将其保留或添加.done() / .fail()回调(看看here)。 另外,我添加了一个随机查询值,以确保加载的脚本不会被缓存:

<script id="myscript" src="src/to/file-with-your-custom-scripts.js"></script>

<script>
$(function() {
  var salt = Math.floor(Math.random() * 1000),
    time;

  function load_script() {
    $('#myscript').remove();
    $.getScript("src/to/file-with-your-custom-scripts.js?s=" + salt, function() {
      $('script:last').attr('id', 'myscript');
      salt = Math.floor(Math.random() * 1000);
      time = setTimeout(function() {
        load_script();
      }, 30 * 1000);
    });
  }
  load_script();
});
</script>

旧版本:

<script id="myscript" src="src/to/file-with-your-custom-scripts.js"></script>

<script>
$(function() {
    setInterval(function() {
        $('#myscript').remove();
        $.getScript("src/to/file-with-your-custom-scripts.js", function() {
            $('script:last').attr('id', 'myscript');
        });
    }, 30000); // every 30 seconds

});
</script>

答案 1 :(得分:0)

另外,为了在我们的网页中加载实时数据而不重新加载,我们可以使用名为 CodeIgniter 的PHP MVC和Jquery。请参阅以下链接以简化操作。还可以去官方website找到更多有趣的东西。

http://chrissilich.com/blog/make-your-own-live-data-feed-with-php-codeigniter-and-javascript-jquery/