2

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

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

目前,这些 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 加载器函数会改善按钮的加载和性能吗?或者代码是嵌入还是外部文件中是否重要?

4

0 回答 0