2010-12-09 52 views
3

我有一個包含20篇文章的頁面,並且對於每篇文章,我都有一個使用該標籤實現的Facebook Like按鈕。頁面上的多個「Like Button」s

正因爲如此,我的網站大大減緩,因爲Firefox在每個類似按鈕的背景中查詢。

有什麼我可以做的,以減少這種負載?

+1

我有同樣的問題,它更糟的是Firefox(地址欄閃爍的每個FB像按鈕)。真的想找一個很好的解決方案。 – Cristian 2011-05-31 10:44:13

回答

2

我假設你使用iframe來顯示你喜歡的按鈕。性能是使用iframe的缺點。如果你有20個iframe,那麼它相當於加載20個網頁(有20個獨立的http請求)。由於瀏覽器每個域都有連接限制,因此可能需要一段時間才能加載多個iframe。在舊版瀏覽器中尤其如此,其中每個域的連接限制只有2個,這意味着一次只能加載2個iframe。 iframe也可能具有阻止其他下載的負面影響,這會使問題更加嚴重。你可以閱讀所有關於這裏的iframe的性能問題:

http://www.stevesouders.com/blog/2009/06/03/using-iframes-sparingly/

如果可能的話,你可能要考慮使用像XFBML按鈕而不是iframe中。不幸的是,這意味着你需要加載Facebook的JavaScript SDK,但有20個類似的按鈕,你應該看到整體性能提升。

+2

我很確定我已經使用了xfbml代碼,它就像這樣開始吧? ` wyred 2010-12-15 13:07:18

+0

我不知道他們使用iframe的用於XFBML也謝謝你讓我知道。 – 2010-12-15 14:59:41

1

作爲替代方案,如果你不熱衷於XFBML的想法,你可以嘗試像OpenLike服務:http://openlike.org/

從他們docs

widget是先裝入創建OpenLike JavaScript,然後調用OPENLIKE.Widget()。多個小部件可以嵌入在同一個頁面中,每個小部件都有不同的選項。

3

以我的經驗,所有的額外IFRAMES實際上比使用JavaScript SDK,即使像圖標都應該asynchonously加載速度更快。我有一個頁面上有大約18個像按鈕,至少IFRAME方法不會像JS版本那樣導致用戶感覺到放緩 - 唯一的缺點是Like按鈕會「彈出」到頁面中在IFRAMES後期。

0

我最終用類似於此解決方案的東西Lots of XFBML Facebook Like buttons are slow?與JQuery聲納。它似乎爲我做了詭計。我更喜歡單個調用加載所有按鈕,但它不在我的控制範圍之內。

如果我有更多的時間,我會做的是使用Facebook API來計算並製作自己的按鈕(也許加載真正的按鈕懸停如果我想要他們的功能,但iirc你可以調用「共享「功能直接)。我目前沒有時間按摩Facebook,所以這是一種臨時性的破解,我認爲它沒有太多的缺點,並且似乎被許多不同的網站所使用。