1

我有一个非常简单的网页,它使用 Facebook Javascript API,并安装为 Facebook 页面上的选项卡。当页面加载时,它在调用通常的 Facebook 初始化代码后唯一要做的就是监听auth.authResponseChange然后根据用户是否登录来显示/隐藏各种元素。

如果我在普通浏览器会话中通过 http 或 https 加载此页面,一切都很好。页面加载速度相当快。

但如果我在 Facebook 中加载页面选项卡,它会挂起大约两分钟。Chrome 告诉我,这种等待是由于“等待”我的页面。但是,如果我查看访问日志,直到页面显示之前,我才看到记录的访问请求。因此,Facebook 似乎掩盖了幕后的真实情况。

在此处输入图像描述

4

1 回答 1

0

我在 Facebook 上开了一张票,他们回答说这个问题是由于我的代码造成的,并且可以通过任何包含 signed_response 的 POST 重现。

经过大量的挠头和实验,我发现将以下两行添加到处理此页面的视图中修复了它:

if 'signed_request' in request.POST:
    pass

很明显,Django 1.3.1 保持 HTTP 会话打开,直到您实际读取一些 POST 值。哎哟。

于 2013-05-17T03:11:28.783 回答