Facebook代码占平均网站的16%...这是一个问题
随着每月20亿活跃用户中,超过半数的所有网民,现在在Facebook上。事实上,社交媒体平台已经成为互联网的一个组成部分,大量的网站现在包含了大量的Facebook代码。
作为总部位于纽约的开发商本·里真斯帕恩 在一个有见地的解释中,百分之六的前10,000个最贩卖网站的加载从Facebook的服务器上的内容。对于大多数人来说,该内容很可能是其SDK,它需要显示像“按钮”和“注释”部分等功能。
但更有趣的是,公司的套件占平均网页加载的所有Javascript大小的16%左右,而且这是非常合乎逻辑的原因:这是因为Facebook将其所有Web功能和同一套件中的小部件。
尽管这样,开发人员可以轻松地从软件库中获得他们需要的各种功能,这也意味着填充大量可能保持未使用或空闲状态的代码的网站。这里的问题是这种方便性对网站的整体表现有很大的影响。
为了更好地了解SDK内部的内容,Regenspan已经组织了一个漂亮的图形来说明这一点:
他继续指出,问题是SDK的相当大的一部分是由功能很少的功能组成的。的确,Facebook可以在单独的API中发布这些工具,但是由于它鼓励网站使用其SDK,所以选择不采用。
例如,Canvas(Facebook的平台本身加载的应用程序系统)占整个软件包的1.53%,支持旧的功能占3.53%。这些确实是SDK中不太受欢迎的一些组件,但鉴于它们占SDK的5.06%,将它们包含起来并不是不合理的。
更多的问题是多少软件库由Polyfills组成 - 高达15.34%。对于那些不熟悉的人来说,polyfill实用程序“用于提供在较早版本的浏览器中找到的功能”。
与Canvas和旧版支持不同,添加到SDK中的大多数类似于Polyfill的工具已经被“绝大多数互联网用户使用的浏览器”包含在内。所以在某种意义上说,占整个软件包的15%的组件只有占所有互联网用户的不到百分之一。
现在,还有其他原因将这些功能分发为一个SDK。鉴于它几乎不会更改,大多数用户已经将软件包下载到其设备。即使没有,下载所需的时间也是微乎其微。
但是,如果每个大公司都采用相同的方法,事情就会开始增加 - 这可能对性能产生负面影响。
Regenspan估计,Facebook套件需要大约50毫秒(1/20秒)来加载新的MacBook Pro,但这个数字在Google Pixel上大约翻了一番,需要1/10秒的时间才能加载。
另一个麻烦在于它破坏了开发人员优化代码的努力。想象一下,几天之后,你可以刮掉自己的代码的十分之一,只是看到这个空间充满了大部分大部分未使用的代码。不完全令人满意
是的,有一些解决方法可以减轻SDK的总体影响。选择仅在需要时加载Facebook SDK就是一种这样的技术。但是再一次,这更是一个欺骗,而不是一个合法的解决方案。事实上,这是我们在TNW的评论部分采取的完全相同的方法。
但是再次,大多数人只需要SDK才能在他们的网站上获得专门的Facebook Like按钮; 鉴于社交媒体重量级逐渐使平台上的页面数量不那么突出,这一举措是否也值得吗?
为中小企业快速匹配开发人员-斜号-斜号社区(xiehao.co)