为社交网络API加载脚本的最有效方法是什么?

时间:2015-09-27 17:19:51

标签: javascript html5 social-networking external-script embedded-script

与大多数网站一样,我的个人网站有一系列社交网络小部件,例如“喜欢”,“关注”和“分享”按钮等。

为了嵌入这些小部件,我使用社交网络开发者网站上提供的JavaScript代码,以及HTML5标记以及按钮的“钩子”的相关data-*属性。

目前,这些API“加载程序”函数位于外部.js文件中,该文件通过位于网页<SCRIPT>中的<HEAD>元素触发。

我注意到这些“加载器”函数从相关的社交网络服务器调用另一个文件。以Facebook的JavaScript加载器功能为例:

(function(d,s,id) {
  var js,fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = '//connect.facebook.net/en_GB/all.js#xfbml=1';
  fjs.parentNode.insertBefore(js,fjs);
}
(document,'script','facebook-jssdk'));

此功能调用Facebook的主要API脚本:

connect.facebook.net/en_GB/all.js

我也将Twitter和Google+加载程序功能放在同一个外部文件中。

然而,尽管我远非JavaScript专家及其与缓存的关系,但我觉得使用外部脚本会导致与缓存相关的问题。这些按钮似乎有自己的想法,无论它们是否实际加载似乎都是运气的问题!我想知道这是否与我的Apache服务器自动发送Last-Modified: HTTP标头有关。

简而言之,我想回答的问题是:

触发这些API加载器的高效无错误方法是哪种方式:通过外部或嵌入式脚本?

换句话说:您是否认为嵌入API加载器功能会改善按钮的加载和性能 - 或者无论代码是嵌入式还是外部文件,它都会产生影响?

0 个答案:

没有答案