Javascript:如何“杀死”对象的加载?

时间:2011-10-30 03:30:19

标签: javascript html

我从其他网站引用对象(图像,脚本,iframe等)。有时,另一个站点已关闭,我必须等待大约30秒才能让我的浏览器“跳过”该对象。如何在例如5秒后“跳过”对象?

以下是一些示例代码:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="js/libs/jquery-1.6.2.min.js"><\/script>')</script>

2 个答案:

答案 0 :(得分:2)

结帐yepnope。这是一个直接来自其主页的片段:

  

yepnope.js有能力进行资源回退并仍然下载   依赖脚本与第一个脚本并行。更清楚:

yepnope([{
  load: 'http:/­/ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js',
  complete: function () {
    if (!window.jQuery) {
      yepnope('local/jquery.min.js');
    }
  }
}, {
  load: 'jquery.plugin.js',
  complete: function () {
    jQuery(function () {
      jQuery('div').plugin();
    });
  }
}]);

我建议在决定是否推出自己的脚本之前调查yepnope和其他现有的脚本加载器。这些加载器非常小(yepnope声称是1.6 kB),因此编写自己的解决方案并没有多大好处。

答案 1 :(得分:1)

HTML5具有async元素的script属性,可通过允许脚本异步加载来抵消此困难。某些浏览器还实现了类似的but not exactly the same非标准defer属性。至于除scripts之外的资源,例如图像,您实际上可以使用JavaScript来异步加载它们(例如,通过动态创建图像元素)。这种方法的缺点是,如果您的异步JavaScript随后导致异步图像加载,那么您将面临FOUC的极高风险。