- 你真的無法控制任何外部插件的性能。
- 您可以生成每個按鈕div的數組,然後將它們寫入到所需的位置。
- 我建議不要同時加載它們,你可以用setTimeout來抵消每一個,「我會建議每個200ms」。
- 沒有按照第三方的建議,像按鈕工作正常。
- 異步,請參考http://developers.facebook.com/docs/reference/javascript/
- 沒有其他建議。
異步樣本。
<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
FB.init({
appId : 'YOUR_APP_ID', // App ID
channelUrl : '//WWW.YOUR_DOMAIN.COM/channel.html', // Channel File
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true // parse XFBML
});
// Additional initialization code here
};
// Load the SDK Asynchronously
(function(d){
var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
if (d.getElementById(id)) {return;}
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "//connect.facebook.net/en_US/all.js";
ref.parentNode.insertBefore(js, ref);
}(document));
</script>
爲什麼不同時加載所有的人?它不是更快嗎? – tomastsc 2012-08-08 13:17:44
類似的按鈕被設計爲在頁面上單獨飛行,Facebook沒有將其設計成在一個頁面上具有100個按鈕,即使只有50ms,也需要做某種偏移,因此功能不會彼此超越,或者導致隨機錯誤。 – 2012-08-08 14:17:53
我只加載每頁20個,並且只在頁面完全加載並加載異步js sdk後呈現它們。我從循環中將按鈕寫入dom,並使用settimeout和xfbml.parse來渲染按鈕。我的抵消是110ms。用戶不會登陸我的頁面並計數按鈕,因此他們甚至不會注意到按鈕在頁面上呈現,並且它不會在瀏覽器之後拖垮,因爲一次只渲染一個而不是100個。 – 2012-08-08 14:20:56