facebook javascript SDK-异步加载
我正在使用facebook SDK for Javascript,有人能解释一下异步加载SDK意味着什么,这段代码如何表示异步加载SDK,以及这将如何影响我的应用程序facebook javascript SDK-异步加载,javascript,facebook,facebook-javascript-sdk,Javascript,Facebook,Facebook Javascript Sdk,我正在使用facebook SDK for Javascript,有人能解释一下异步加载SDK意味着什么,这段代码如何表示异步加载SDK,以及这将如何影响我的应用程序 // Load the SDK asynchronously (function(d){ var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0]; if (d.getElementById(id)) {
// Load the SDK asynchronously
(function(d){
var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
if (d.getElementById(id)) {return;}
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "//connect.facebook.net/en_US/all.js";
ref.parentNode.insertBefore(js, ref);
}(document));
min2bro,一般来说,脚本/SDK有两种加载方式: 同步。这通常是包含内容时的默认设置。假设当您请求某些内容时,浏览器必须等待该内容被包含,然后才能获取其他内容。换句话说,它一次只能做一件事。这很好也很简单。它是“线性”的,你可以很容易地追踪发生了什么 优点:简单。易于理解,易于使用。减少了开发人员的麻烦 缺点:速度和用户体验。如果您在同一页面(来自不同服务)上有5个社交类/共享/pin/任意按钮,则会显著降低页面速度,因为用户可能无法向下滚动并查看页面的其余部分,因为他们正在等待类似按钮出现 异步。对于脚本,仅当您在此处尝试手动指定时才会发生。这意味着您在说“用户可以在Facebook SDK可用之前查看整个页面并开始滚动”。“Facebook SDK”是指任何与Facebook相关的功能,如“喜欢”按钮、Facebook连接等 优点:速度和用户体验。如果你的页面上有很多脚本,你的用户仍然可以阅读文章/查看页面并享受内容 缺点:更难相处。根据您所访问的站点,您可能需要重新构造代码,以便它等待Facebook SDK可用。您不能在粘贴的代码段之后包含一个随机脚本,并期望它能够正常工作。您必须将功能包装在事件处理程序中,特别是
window.fbasyninit=function(){…}
TL;DR:Async意味着您可能需要更改自己的代码,如果它依赖于Facebook SDK的话。如按钮等可能需要较长时间才能显示。异步还意味着更好的用户体验。关于此主题,有很多参考资料,请参阅和