我正在运行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已连接,我会利用该重新加载来验证网站上的用户。那么有没有办法改进我的方法并消除打嗝?
答案 0 :(得分:3)
如果您的页面内容在很大程度上取决于用户是否已登录,即您只想在角落中显示用户个人资料,则无需重新加载该页面。您可以通过ajax调用通知服务器有关用户登录的信息,并通过javascript呈现用户配置文件。
如果记录的用户看到与来宾完全不同的页面,那么您可以将facebook登录完全移至服务器端,并在显示页面之前检查用户是否已登录。
这将消除额外的页面重新加载。如果你想更进一步,在检查用户是否登录时最小化延迟(在facebook方面可能需要几秒钟),那么一旦他们第一次登录并读取用户,你就会在会话cookie中缓存用户信息从那里(在服务器端或通过js)的信息,而不是在每个页面加载时向Facebook发出请求。