2014-01-20 92 views
2

在使用社交媒體按鈕後,我意識到在遵循標準JavaScript方法時需要一些時間來加載它們。 e.g對於Facebook它是這樣的:靜態社交(分享按鈕)鏈接的優點和缺點?

<div class="fb-like" data-href="https://developers.facebook.com/docs/plugins/" data-layout="standard" data-action="like" data-show-faces="true" data-share="true"></div> 
... 
<div id="fb-root"></div> 
<script>(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_US/all.js#xfbml=1&appId=180631328718700"; 
    fjs.parentNode.insertBefore(js, fjs); 
}(document, 'script', 'facebook-jssdk'));</script> 

加載時間即使當多個按鈕(FB,G +,微博Pinterest的....)存在增加。這可以通過使用靜態鏈接等迴避:

http://www.facebook.com/plugins/like.php?href=https%3A%2F%2Fdevelopers.facebook.com%2Fdocs%2Fplugins%2F&width&layout=standard&action=like&show_faces=true&share=true&height=80

其中在Facebook的情況下,在文檔中,但例如Pinterest的只提自己的文檔中的JavaScript方法。然而,對於pinterest情況,很容易找出鏈接應該是什麼樣子。

我可以看到javascript的一些優點:可以看到點擊次數,免費的彈出窗口。這是爲了延長加載時間(移動設備上的時間可能更長)的成本。 javascript的另一個缺點是可能很難處理動態網站。

靜態鏈接的優勢在於,無需點擊次數和彈出窗口,靜態鏈接的優勢在於加載速度和動態頁面的簡單開發,以支持生活成本。也沒有社交javascripts(通常做重dom更改)所做的DOM更改

還有什麼?那鏈接的後向兼容性怎麼樣 - 鏈接模板將來會改變嗎?

回答

2

我喜歡你如何旨在減少這些小部件的開銷。我在同一條船上。

如果未記錄社交按鈕,則可以看到JavaScript轉換的結果,並使用靜態鏈接等價。當然,當然,他們會在不知道自己還在引用舊方式的情況下,在某個時候改變其模板。這絕對是一個缺點。

除了減少DOM操作之外,另一個好處是連接少。某些JavaScript會注入一個iFrame,這會顯着延遲頁面加載。

你可以做一個懶惰的加載器,並仍然有JavaScript的交互。只是不要使用便捷但低效的複製粘貼就緒代碼。