【问题标题】:Two days that all.js (Facebook SDK) is randomly not loadingall.js(Facebook SDK)随机未加载的两天
【发布时间】:2011-12-13 14:45:00
【问题描述】:

从昨天开始,我们就遇到了“FB 未定义”错误,这是由于 Facebook 未提供核心 Javascript SDK 文件 all.js 引起的。

查看 Firebug 或 Chrome 开发人员工具中的 NET 选项卡,我可以看到 all.js 上的 get 失败。

几次页面刷新后,它可以正常工作,然后 10 分钟后再次无法提供文件。

这是 Facebook 的问题吗?显然我们没有其他网络错误,并且我们不在代理后面。还有人经历吗? Facebook 状态页面没有报告任何问题,我在 Google 上找不到任何最新信息。

“正常”吗?像 Facebook 限制基于一些“上限”或类似的东西?

【问题讨论】:

  • 我们仍然遇到这个问题。 connect.facebook.com 的 GET 就死在那里了。在互联网的所有其他部分,我们没有任何其他问题。其他人有(或曾经有过)这个问题吗?有什么合理的理由吗?
  • 您是否尝试将其关闭再打开?不,说真的,在另一台服务器上或从不同的计算机上尝试过同样的事情吗?
  • @webarto 是的,我们是 4 个开发人员,都遇到同样的问题,而且来自不同的位置。
  • 你确定协议替换没有问题。尝试将 //connect.facebook.com/en_US/all.js 替换为 connect.facebook.com/en_US/all.js
  • 另外您必须了解大多数 ISP 提供商使用代理,因此您无法确定这一点。尝试将 ?_=timestamp 广告添加到网址。并从另一个 ISP 的另一个 IP 检查它。

标签: javascript facebook sdk


【解决方案1】:

我之前也遇到过同样的问题。这是我永远无法真正确定的事情,但它被认为是 Facebook 的问题。我的解决方案是获取 all.js 的副本并在本地提供。

【讨论】:

  • 这是一个很好的解决方案。我总是这样做,唯一需要注意的是每当有 js sdk (all.js) 更新时,我们必须将其下载到本地服务器,我认为这不是一项艰巨的任务;-)
  • 嗨 wafflestomper,我最终使用了 all.js 的本地副本的(可怕的)同步加载,以防 Facebook 的 all.js 无法使用通用异步系统加载。不幸的是,这发生在原始请求超时之后,这意味着在相当长的一段时间之后......然而,它在开发过程中是一个有效的解决方案。
【解决方案2】:

您的描述听起来像是网络问题,但是如果您异步加载 SDK 并尝试在 FB 对象完全加载之前使用它,则会导致此错误,并且还可能由于以下原因停止尝试加载 all.js Javascript 错误。

要解决此问题,请将所有对 FB 对象的引用放在此页面上看到的 window.fbAsyncInit 函数中:https://developers.facebook.com/docs/reference/javascript/

这可能不是您的问题,但当我看到该错误时,这几乎总是解决方案。

【讨论】:

    【解决方案3】:

    您必须在页面底部添加 Facebook SDK all.js。 Facebook SDK前必须加上<div id="fb-root"></div>

    加载完成后,就可以调用函数FB了。

    Facebook SDK 的调用必须使用 document.protocol HTTPS 或 HTTP。

    祝你好运!

    【讨论】:

    • 嗨 Pierre,将脚本放在页面下方将加快加载速度,但不会影响其加载周期 AFAIK。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多