Facebook评论加载非常缓慢

3
Facebook评论组件会多次加载相同JavaScript,这会导致我们的页面变慢,有时需要加载29秒。请帮忙解决。该脚本在HTML源代码的底部,我们从Facebook开发者API获取它。参考链接:http://www.247polls.com/polls/should-marijuana-be-legalized/,图片链接为:enter image description here

对于我来说,你在问题中写的链接与所有评论一起加载大约需要2秒钟。你在哪个地区?你的网站服务器在哪里? - Samuel Tulach
多伦多,加拿大,但我从美国费城进行测试,没有 Facebook 评论的页面加载时间为 490-580 毫秒,有多个相同的 JavaScript 加载。 - Valentin Petkov
https://www.webpagetest.org/ - Samuel Tulach
Samuel,我的问题是Facebook评论组件。我可以忍受其余页面加载550毫秒,以下是其他速度测试工具:https://developers.google.com/speed/pagespeed/insights/ - Valentin Petkov
2个回答

1
FB.XFBML.parse();

即使页面尚未加载完成,也会加载您的评论:
<script>
    window.fbAsyncInit = function () {
        FB.init({appId: 'YOUR-APP-ID', version: 2.4, xfbml: true});

        if (typeof facebookInit == 'function') {
            facebookInit();
        }
    };

    (function () {
        var e = document.createElement('script');
        e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
        e.async = true;
        document.getElementById('fb-root').appendChild(e);
    }());


    function facebookInit() {
        console.log('Loading comments...');
        FB.XFBML.parse();
    }
</script>

另一个提高速度的方法是将评论显示数量限制为5个,使用 num_posts
继续努力!

嗨,乔纳森,感谢您的回复。这段代码是旧版本,有新版本可用:https://developers.facebook.com/docs/javascript/quickstart/v2.3。不再需要“fb-root”元素,而我已经在我们的网站上使用了它。我们的问题是同一Facebook JavaScript的多次加载,请参见附图或查看页面源代码。谢谢。 - Valentin Petkov

0

这是错误的。使用 document.createElement 动态插入的脚本默认情况下会异步执行。 - kappa

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接