2012-01-23 8 views
10

bilen var mı? Nginx günlük dosyalarımızda vurulduğunu görebiliyorum ve IE8 kullanıcılarından geliyormuş gibi görünüyor, ancak el ile yeniden oluşturulamıyor gibi görünüyor. Düğmeler ve yorum eklentileriyle birlikte bir Hayran Sayfası iframe uygulamasına sahibim.ChannelUrl ne zaman kullanılır? FB.init geçirilen ChannelUrl parametresi, aslında fb js sdk tarafından kullanıldığında

+0

Sayfa yüklemem sırasında ağ trafiğini incelediğimde FF ve Chrome tarafından yüklendiğini görüyorum. ** ne zaman yüklenirse ** bilmiyorum. Bağlantınız için – DMCS

cevap

19

Bu yayını görebilirsiniz. iyi açıklandı.

https://developers.facebook.com/blog/post/2011/08/02/how-to--optimize-social-plugin-performance/

Bu yazı linki gelecekte güncelleyebilir. bu yüzden yazarın tam kredisini vererek FB yayınevi blogundan bütün yazıyı kopyalayıp yapıştırıyorum.


Nasıl Yapılır: Ankur Pansari tarafından Sosyal Medya Eklentisi Performans Optimize - web sitelerinin 00:00

Millions 3 Ağustos 2011 sosyal eklentileri işlemek için XFBML kullanın. Web sitelerinizde bunların performansını artırabilecek bazı en iyi uygulamaları paylaşmak istedik. Spesifik olarak, kullanıldığında yükleme sürelerini iyileştirecek ve Facebook'tan gelen referans trafiğinin çift sayımı gibi diğer sorunları azaltacak özel kanallı ve asenkron yükleme olanağı sunuyoruz.

özel kanal URL'si channelUrl adı FB.init işlevi isteğe bağlı bir parametredir. JavaScript kütüphanesini başlangıç ​​yaparken, FB.init işlevinde channelUrl parametresini ekleyin:

<div id="fb-root"></div> 
<script src="//connect.facebook.net/en_US/all.js"></script> 
<script> 
    FB.init({ 
    appId : 'YOUR APP ID', 
    status: true, // check login status 
    cookie: true, // enable cookies to allow server to access session, 
    xfbml: true, // enable XFBML and social plugins 
    oauth: true, // enable OAuth 2.0 
    channelUrl: 'http://www.yourdomain.com/channel.html' //custom channel 
    }); 
</script> 

channelUrl noktaları bazı eski tarayıcılarda iletişim hızını artırmaya yardımcı olur yerel dizine eklemek bir dosyaya. ChannelUrl olmadan, sosyal eklentileri düzgün bir şekilde yüklemek için web sayfasının ikinci bir kopyasını gizli bir iframe içine yüklemek gibi geçici çözümleri kullanmak zorundayız. Çözümler, yükleme sürelerini artırıyor ve Facebook'tan gelen yönlendirme trafiğini şişiriyor.

, bir channel.html dosyası oluşturmak ( http://www.yourdomain.com/channel.html bulunan) dosyasına aşağıdaki satırı ekleyin: PHP çalıştırma yeteneğine varsa

<script src="//connect.facebook.net/en_US/all.js"></script> 

, şiddetle için uzun önbellek ayarı tavsiye Optimum performans sağlamak için channelUrl dosyası. İşte bunu gerçekleştirir örnek bir PHP script:

<?php 
    $cache_expire = 60*60*24*365; 
    header("Pragma: public"); 
    header("Cache-Control: maxage=".$cache_expire); 
    header('Expires: '.gmdate('D, d M Y H:i:s', time()+$cache_expire).' GMT'); 
?> 

<script src="//connect.facebook.net/en_US/all.js"></script> 

Bu durumda, ayrıca http://www.yourdomain.com/channel.php gibi tam URL'ye channelUrl dosyasını ayarlamalısınız. Özel bir channelUrl ekleyerek olduğumuz testlerde

, Internet Explorer performansı artırır ve bu nedenle onun dahil bizim geliştiriciler tümü için tavsiye edilir. 5 XFBML eklentileri ile bir test web sitesinin yükleme süresi 0.43 saniyeye 1.10 saniyeden geliştirir parametreyi içeren Internet Explorer istatistiksel olarak anlamlı performans kazançlar sağlamaktadır.

Asenkron yükleme sayfanızın sayfanızın diğer elementlerin yüklenmesini engellemeden hızlı yüklenmesini sağlayan başka basit bir taktiktir. JS SDK'nın başarılı bir şekilde yüklenmesi üzerine, window.fbAsyncInit işlevini çağırıyoruz. Facebook API çağrılarına bağlı olan tüm ön uç işlevleri, window.fbAsyncInit yoluyla ayrılmalı ve çağrılmalıdır. Bu, Facebook özelliklerinin engellenmeyen bir şekilde yüklenmesini sağlar ve olumlu SEO avantajlarına sahip oluşturma işlemini hızlandırır. Sosyal özelliklerinizi tasarlarken, başlamak için bu zihniyetle yaklaşmalısınız.Örneğin

:

<html xmlns:fb="https://www.facebook.com/2008/fbml"> 
<body> 
<div id="fb-root"></div> 
<script> 
    /* All Facebook functions should be included 
    in this function, or at least initiated from here */ 
    window.fbAsyncInit = function() { 
    FB.init({appId: 'your app id', 
      status: true, 
      cookie: true, 
     xfbml: true}); 

    FB.api('/me', function(response) { 
     console.log(response.name); 
    }); 
    }; 
    (function() { 
    var e = document.createElement('script'); e.async = true; 
    e.src = document.location.protocol + 
     '//connect.facebook.net/en_US/all.js'; 
    document.getElementById('fb-root').appendChild(e); 
    }()); 
</script> 
</body> 
<html> 

Biz bu seçeneklerden önemini yansıtacak şekilde dokümanlarımıza güncellenerek bir channelUrl içerecek şekilde varsayılan örnek kod değiştirdik. Dokümanlarımızı Geliştirici Geliştirici Operasyonu'nun bir parçası olarak güncellemeye devam ediyor ve “Nasıl Yapılır” blog gönderileri aracılığıyla daha iyi en iyi uygulamaları paylaşmaya devam ediyoruz.

+0

teşekkürler. Bu sorunu çözdü :) –

+2

Bağlantılar zamanla ölebilir gibi burada biraz daha fazla sağlamak için en iyi olurdu. –

+2

Şey ... Sadece biraz tembelim! :)....önerin için teşekkürler. Bir dahaki sefere bu sorunu hatırlayacağım. –

İlgili konular