与大多数网站一样,我的个人网站有一系列社交网络小部件,例如“喜欢”,“关注”和“分享”按钮等。
为了嵌入这些小部件,我使用社交网络开发者网站上提供的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加载器功能会改善按钮的加载和性能 - 或者无论代码是嵌入式还是外部文件,它都会产生影响?