延迟加载脚本加载和/或执行

时间:2015-03-16 09:10:57

标签: javascript jquery html

在我的基于ajax的应用程序中,特别是一个GWT应用程序,它有div s,隐藏了索引HTML上的脚本。这是在应用完全加载时重新定位的广告。这种方法的问题在于,在应用程序完全加载之前首先获取广告脚本,从而导致延迟效果或缓慢加载应用程序。

有没有办法延迟在这些div中加载这些脚本,以便应用程序可以首先正常加载,并且在完成页面加载之前,用户体验可能不会受到脚本提取及其执行的影响?

e.g。

<script src="gwtapp.nocache.js"/>
<div id="ad1">
  <script>...</script>
</div>

在我的应用中,还有很少的div需要延迟。有没有办法让jQuery使div还没有加载,只是在时间准备就绪时以编程方式触发它。

2 个答案:

答案 0 :(得分:1)

您可以使用jQuery .ready() - 将.js文件中的所有内容都放到此函数中。像这样:

$(document).ready(function() {
  //code here
});

Function .ready()等待完整的DOM树加载和创建。

答案 1 :(得分:1)

正如CorwinCZ所提到的,你可以使用ready function。并使用 jQuery.getScript()使用GET HTTP请求从服务器加载JavaScript文件,然后执行它。

   $(function() {
      $.getScript( "gwtapp.nocache.js" )
      .done(function( script, textStatus ) {
        console.log( textStatus );
      })
      .fail(function( jqxhr, settings, exception ) {
        console.log( "ERROR" );
    });
  });