2013-11-28 37 views
0

我用這個片段:Facebook共享連接的js很慢

function loadFacebook() 
{ 
    var app_id = $('meta[property="fb:app_id"]').attr("content"); 
    $.ajax({ 
     type: 'GET', 
     url: '//connect.facebook.net/it_IT/all.js', 
     timeout: 2000, 
     dataType: 'script', 
     cache: true, 
     success: 
      function() { 
       FB.init({ appId: app_id, status: true, cookie: true, xfbml: true }); 
      } 
     }); 
    var pathname = $(location).attr('href'); 
    $('#facebook-sharing').append('<div class="fb-share-button" data-href="'+pathname+'" data-width="140" data-type="button_count"></div>'); 
} 

似乎不會緩存沒出息,和頁面加載是非常,非常緩慢。我看到的其他網站似乎沒有這個問題。

我知道還有其他類似的問題,但似乎沒有解決我的麻煩。謝謝。

+1

我知道沒有太大的區別,但是您可以嘗試使用getScript()方法嗎?詳細[這裏](https://developers.facebook.com/docs/javascript/howto/jquery/) –

+0

呃.....約1秒加載而不是〜2;)順便說一句,一個解決方案, ) 非常感謝你! – sineverba

+0

很高興工作。我將把它作爲答案在這裏發佈以備將來參考。如果您無法找到其他替代品,您可以將其標記爲已接受。 –

回答

1

嘗試使用getScript()方法。 getScript()方法是異步的,因此您將傳遞一個匿名回調函數,您可以像往常一樣執行SDK初始化代碼。

$(document).ready(function() { 
    $.ajaxSetup({ cache: true }); 
    $.getScript('//connect.facebook.net/en_UK/all.js', function(){ 
    FB.init({ 
     appId: 'YOUR_APP_ID', 
    });  
    $('#loginbutton,#feedbutton').removeAttr('disabled'); 
    FB.getLoginStatus(updateStatusCallback); 
    }); 
}); 

來源:Facebook SDK for JavaScript with jQuery