在页面上加载外部脚本异步会增加页面加载的延迟

时间:2013-12-10 08:49:15

标签: javascript jquery ruby-on-rails ruby-on-rails-3

我在异步模式下包含外部JavaScript文件Facebook和CrazyEgg

所以我的问题是:这些脚本是否会增加执行jQuery的就绪功能的延迟。

我在布局底部包含外部JS文件:

  setTimeout(function(){var a=document.createElement("script");
  var b=document.getElementsByTagName('script')[0];
  a.src=document.location.protocol+"//dnn506yrbagrg.cloudfront.net/pages/scripts/0012/6522.js?"+Math.floor(new Date().getTime()/3600000);
  a.async=true;a.type="text/javascript";b.parentNode.insertBefore(a,b)}, 1);

  window.fbAsyncInit = function () {
    FB.init({appId: "facebook_app_id", status: true, cookie: true});
  };
  (function(d){
    var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
    js = d.createElement('script'); js.id = id; js.async = true;
    js.src = '//connect.facebook.net/en_US/all.js';
    d.getElementsByTagName('head')[0].appendChild(js);
  }(document));

所以上面的外部JS会导致执行my_function();的任何延迟?

myapp_js_file.js包含在布局头

// myapp_js_file.js

$(document).ready(function() {
  my_function();
})

1 个答案:

答案 0 :(得分:0)

据我所知,调用任何内容(尤其是外部代码)会增加延迟,因为需要完成更多请求。

我不知道rails是否会缓存这样的内容,但我对此表示怀疑。

增加的延迟(如果有的话)应该是名义上的