2010-08-15 67 views
0

我正在運行一個Facebook Connect站點,我使用Connect進行身份驗證。我檢查用戶是否通過每個頁面上的臉書連接,以便我可以快速鑑定他們,如果他們註冊。在頁面加載時Facebook連接的最佳方式?

我認爲我目前做這件事的方式可能不好,因爲每當它從facebook連接的用戶加載時,頁面「打嗝」。也就是說,頁面元素可見地重新呈現,並且在加載之前用戶的Facebook個人資料圖片閃爍一下。我很確定有更好的方式,因爲我已經看到Facebook Connect身份驗證沒有這些「打嗝」。這是我的工作,非常基本的代碼:

<body onload="fbConnect();">  
     <!-- page contents --> 
     <script type="text/javascript">  
      function fbConnect() 
      { 
       FB.init([MYAPPKEY], "xd_receiver.htm",{"reloadIfSessionStateChanged":true}); 
      } 
     </script> 
    </body> 
</html> 

我採取重裝的優勢,如果他們的Facebook連接到認證網站上的用戶。那麼有沒有辦法改進我的方法並消除打嗝?

回答

3

如果您的頁面內容不依賴於用戶是否已登錄,即您只想在角落顯示用戶配置文件,則無需重新加載頁面。您可以通過ajax調用通知服務器用戶登錄並通過javascript呈現用戶配置文件。

如果登錄的用戶看到與來賓非常不同的頁面,則可以將facebook登錄移動到服務器端,並在顯示頁面之前檢查用戶是否已登錄。

這將消除多餘的頁面重新加載。如果您想要更進一步,並在檢查用戶是否登錄時將延遲降至最低(可能需要幾秒鐘的時間纔可以在Facebook上進行),那麼您在用戶信息第一次登錄並讀取用戶後將其緩存在會話cookie中信息(無論是在服務器端還是通過js),而不是在每次頁面加載時向Facebook發送請求。

相關問題