异步加载第三方内容

异步加载第三方内容

嵌入一个Youtube视频或者一个like/tweet按钮,有人没有加载过这样的第三方内容吗?

问题在于,不管是用户端的还是服务器端的连接,都无法保证这些代码是正常有效的工作的。这些服务有可能临时dowan掉或者是被用户或者其公司的防火墙阻止。

为了避免这些在页面加载时成为问题,或者更严重的是,阻塞了全部页面的加载,总是应该异步加载这些代码 (或者使用 Friendly iFrames).

var script = document.createElement('script'),
    scripts = document.getElementsByTagName('script')[0];
script.async = true;
script.src = url;
scripts.parentNode.insertBefore(script, scripts);

另外,如果你想加载多个第三方插件,你可以使用这个代码来实现异步的加载。

(function() {
 
var script,
scripts = document.getElementsByTagName('script')[0];
 
function load(url) {
script = document.createElement('script');
script.async = true;
script.src = url;
scripts.parentNode.insertBefore(script, scripts);
}
 
load('//apis.google.com/js/plusone.js');
load('//platform.twitter.com/widgets.js');
load('//s.widgetsite.com/widget.js');
 
}());
 
http://browserdiet.com/zh/#js
posted @ 2014-05-14 09:27  ooxiaofangoo  阅读(378)  评论(0编辑  收藏  举报