2010-08-15 31 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发送请求。

相关问题