• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

为什么一个网站16%的JS代码属于Facebook?

武飞扬头像
Luke
帮助3736

 

根据BuiltWith.com网站收集到的数据,排名前10000位的高流量站点中有6%的网站是从Facebook服务器上加载内容的。对于它们中的绝大多数来说,加载的内容可能是Facebook的JavaScript SDK,这一大段代码用来显示类似Like按钮(就像在许多媒体网站上看到的那样)和Facebook评论小插件(也用在许多大的媒体网站,Buzzfeed网站也在其中)。SDK代码如此之大,它占了一般站点页面上所有JavaScript总大小的16%。

作为一个大规模的被广泛应用的软件库,Facebook SDK是一个很好的方式,来说明一些问题的答案:为何今天的一般站点这么大?网站大小到底有多重要?

Facebook SDK功能非常齐全,涵盖了一般站点的许多工具,它很可能已经包含了可供开发人员使用的工具: 从其它站点检索数据的方法,用于确定用户使用的浏览器和设备,以便针对它们特定的特性,显示UI元素(像确认对话框和按钮一样)。如果我们对SDK所有的部分进行分类,分解看起来像这样: 
学新通技术网

在这些特征集之中,三个是最突出的:

SDK中的这三组特征集与大多数站点上的绝大多数用户完全无关。去掉它们—如果有可能这样做—将会减掉大约SDK文件大小的20%。【数据源、方法论和更多屏幕阅读器兼容的数据表

之后是Legacy特性支持。这反映了一个事实,一个API会随着时间的推移累积多个接口来处理相同的功能。例如,开发人员编写的代码既可以调用FB.getLoginStatus()(legacy的方法去请求用户当前的Facebook登录状态),也可以调用Auth.getLoginStatus()。(新的,鼓励使用的方法)绕过需要包含这两套方法的方式是将它们分别发布在SDK的不同版本中,但是Facebook选择不这么做,这可能会简化开发人员的体验,并最大化使用相同文件的站点数量(为了增加一般用户已经下载SDK的可能性)。这个决定的代价很小:大约有3.5%的SDK代码是用来处理显示标记为“legacy”特性的(而且很有可能还有很多“legacy”特性,只是没有明确地标记为这样而已)。

剩下的~80%的SDK,哪个特性被哪个作用所需要的问题更难解开。这是因为SDK是这样写的,要使用像Like按钮这样的简单功能,还必须包含用于评论,视频嵌入,登录按钮和其它不相关功能的代码。Facebook本来可以选择分发更小的文件,只包含像Like按钮这样的单一特性,但它的商业目标是鼓励网站尽可能多地使用Facebook提供的特性。

由于Facebook SDK的广泛应用,以及它变化相对较少的事实,许多用户在加载站点前可能已经下载了它。事实上,这是Facebook为什么要发布这样一个大文件,而不是发布像Like按钮这样特定特性的小文件的主要原因。大多数用户的网络连接—至少那些发达国家的用户—下载Facebook SDK文件所需要的时间很短。

学新通技术网

在一个非常新的智能手机上(Google Pixel),JS脚本执行时间倍增,超过十分之一秒: 
学新通技术网

当关联起来看时,这只是页面总代码执行时间上的一小部分。但在滚动页面或者页面交互时增加了时间,这可能会是一次非常不愉快的体验。很重要的一点:这个特定的SDK有很小的成本,但是现代的网站—尤其是媒体网站—通常包含来自大量第三方的类似代码(这个例子从Gawker网站取得,在它被一个亿万富翁敲诈勒索搞破产之前,显示可以有多少这样的请求)。

应该包含它吗?

如果你想使用Like按钮,停止并重新考量。Facebook在用户的时间表上不再显示醒目的(或,在大多数案例中,完全)Like按钮。最好使用一个简单的自定义共享按钮或链接,作为一个额外的好处,这样做将阻止Facebook追踪所有到您页面的访问,避免侵犯到用户的隐私。删除了Like按钮的站点,在涉及到Facebook流量推荐时,没有发现这样做会带来什么负面影响。

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanecee
系列文章
更多 icon
同类精品
更多 icon
继续加载