参见http://running.ph/

它会在所有按钮加载时将chrome挂一会儿。我已经读过使用IFrame避免这种情况,但是我真的想使用XFBML JS来获得它所具有的所有其他功能,例如跟踪点赞,评论和发送按钮。

有人对此有解决方案吗?
我确定我不是唯一拥有10多个“喜欢”按钮的网站。

最佳答案

嗯,我通过检查Techcrunch/AOL的功能找到了答案。
您在用户滚动时加载XFBML。

1.)不要在FB.init上解析XFBML或加载JS SDK

FB.init({
  appId  : APP_ID,
  xfbml  : false
});

2.)加载jQuery和jquery.sonar.js-这包含滚动和滚动自定义事件
<script src="//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script src="http://artzstudio.com/files/jquery-boston-2010/jquery.sonar/jquery.sonar.js"></script>

3.)jQuery代码,用于在scrollin事件上解析XFBML(从Techcrunch窃取)
jQuery(document).ready(function($) {
    var $shareWidgets = $( '.share-widget' );
    $shareWidgets.bind( 'scrollin', { distance: 500 }, function() {
        var $share = $( this );
        if (!$share.data( 'initFB' ) && window.FB) {
            $share.data('initFB', 1);
            $share.unbind( 'scrollin' );
            FB.XFBML.parse( $share[0] );
        }
    });
});

4.)将XFBML标签包装在名为“share-widget”的类中
<span class="share-widget"><fb:like></fb:like></span>

和瞧! XFBML不再使您的页面变慢。当然,这仅在页面上有很多XFBML标签时才有用。大多数博客可能都有。

谢谢美国在线!

请参阅使用jQuery的AOL的SlideShare演示文稿:http://www.slideshare.net/daveartz/jquery-in-the-aol-enterprise,他们在其中讨论此功能以及他们使用的其他优化。

关于javascript - 很多XFBML Facebook Like按钮运行缓慢吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6838254/

10-09 19:48