我可以将社交按钮脚本放入组合文件中吗?

时间:2012-08-20 18:54:13

标签: javascript facebook social pinterest

我正在开发的网站有多个社交按钮 - Facebook,Twitter,Google +,Pinterest等。

其中大部分都有自己的外部.js文件,要包含在您的网页上。对于涉及http请求的站点,将所有社交.js文件合并为一个的缺点是什么?

我最关心的是供应商何时更新脚本。这种情况的通常协议是什么?保留额外的请求,或使用过时的代码冒险?

2 个答案:

答案 0 :(得分:3)

浏览器缓存应该已经为您解决了这个问题。使用供应商脚本的一个巨大好处是每个网站都链接到该供应商脚本的相同副本,因此它们很可能已经在浏览器中缓存(由于先前页面上的浏览器访问),因此没有http请求是当它们已经在浏览器缓存中时需要加载它们。如果您使用自己的副本,则必须为您的网站重新下载,并且您将无法利用该代码已在浏览器中缓存的事实。

除了缓存之外,大多数这样的供应商都使用CDN来托管脚本,这是一个分布式和优化的位置,可以更快地下载,应该能够比托管站点更快地下载脚本。

在缓存问题之外,这些脚本需要保留在供应商的站点上,并由供应商在供应商认为合适时进行维护。如果他们想改变它们,那就是他们的特权。您也不能将它们组合到您自己的组合脚本中。他们可以随时更改网站的工作方式,如果您使用的是复制的过时脚本,您的功能可能会轻易中断。

根据您使用它们的方式,您可以更改第三方脚本,以便动态加载它们,并在加载常规页面脚本后加载。这可能会延迟其UI的显示,但可能会让您的页面加载速度更快。

答案 1 :(得分:1)

合并的缺点:

  • 无法轻松更新供应商的JS文件。
  • 无法利用供应商的CDN。 (您将合并后的版本存储在服务器上。)

第一个问题的解决方案是在您的服务器上运行一个cron作业,该作业会定期合并最新版本的社交库。此合并版本将提供给您的用户。