Facebook代碼占平均網(wǎng)站的16%...這是一個問題
隨著每月20億活躍用戶中,超過半數(shù)的所有網(wǎng)民,現(xiàn)在在Facebook上。事實(shí)上,社交媒體平臺已經(jīng)成為互聯(lián)網(wǎng)的一個組成部分,大量的網(wǎng)站現(xiàn)在包含了大量的Facebook代碼。
作為總部位于紐約的開發(fā)商本·里真斯帕恩 在一個有見地的解釋中,百分之六的前10,000個最販賣網(wǎng)站的加載從Facebook的服務(wù)器上的內(nèi)容。對于大多數(shù)人來說,該內(nèi)容很可能是其SDK,它需要顯示像“按鈕”和“注釋”部分等功能。
但更有趣的是,公司的套件占平均網(wǎng)頁加載的所有Javascript大小的16%左右,而且這是非常合乎邏輯的原因:這是因?yàn)镕acebook將其所有Web功能和同一套件中的小部件。
盡管這樣,開發(fā)人員可以輕松地從軟件庫中獲得他們需要的各種功能,這也意味著填充大量可能保持未使用或空閑狀態(tài)的代碼的網(wǎng)站。這里的問題是這種方便性對網(wǎng)站的整體表現(xiàn)有很大的影響。
為了更好地了解SDK內(nèi)部的內(nèi)容,Regenspan已經(jīng)組織了一個漂亮的圖形來說明這一點(diǎn):
他繼續(xù)指出,問題是SDK的相當(dāng)大的一部分是由功能很少的功能組成的。的確,F(xiàn)acebook可以在單獨(dú)的API中發(fā)布這些工具,但是由于它鼓勵網(wǎng)站使用其SDK,所以選擇不采用。
例如,Canvas(Facebook的平臺本身加載的應(yīng)用程序系統(tǒng))占整個軟件包的1.53%,支持舊的功能占3.53%。這些確實(shí)是SDK中不太受歡迎的一些組件,但鑒于它們占SDK的5.06%,將它們包含起來并不是不合理的。
更多的問題是多少軟件庫由Polyfills組成 - 高達(dá)15.34%。對于那些不熟悉的人來說,polyfill實(shí)用程序“用于提供在較早版本的瀏覽器中找到的功能”。
與Canvas和舊版支持不同,添加到SDK中的大多數(shù)類似于Polyfill的工具已經(jīng)被“絕大多數(shù)互聯(lián)網(wǎng)用戶使用的瀏覽器”包含在內(nèi)。所以在某種意義上說,占整個軟件包的15%的組件只有占所有互聯(lián)網(wǎng)用戶的不到百分之一。
現(xiàn)在,還有其他原因?qū)⑦@些功能分發(fā)為一個SDK。鑒于它幾乎不會更改,大多數(shù)用戶已經(jīng)將軟件包下載到其設(shè)備。即使沒有,下載所需的時間也是微乎其微。
但是,如果每個大公司都采用相同的方法,事情就會開始增加 - 這可能對性能產(chǎn)生負(fù)面影響。
Regenspan估計(jì),F(xiàn)acebook套件需要大約50毫秒(1/20秒)來加載新的MacBook Pro,但這個數(shù)字在Google Pixel上大約翻了一番,需要1/10秒的時間才能加載。
另一個麻煩在于它破壞了開發(fā)人員優(yōu)化代碼的努力。想象一下,幾天之后,你可以刮掉自己的代碼的十分之一,只是看到這個空間充滿了大部分大部分未使用的代碼。不完全令人滿意
是的,有一些解決方法可以減輕SDK的總體影響。選擇僅在需要時加載Facebook SDK就是一種這樣的技術(shù)。但是再一次,這更是一個欺騙,而不是一個合法的解決方案。事實(shí)上,這是我們在TNW的評論部分采取的完全相同的方法。
但是再次,大多數(shù)人只需要SDK才能在他們的網(wǎng)站上獲得專門的Facebook Like按鈕; 鑒于社交媒體重量級逐漸使平臺上的頁面數(shù)量不那么突出,這一舉措是否也值得嗎?
為中小企業(yè)快速匹配開發(fā)人員-斜號-斜號社區(qū)(xiehao.co)