【问题标题】:Channel API socket doesn't open on first load in Firefox通道 API 套接字在 Firefox 中首次加载时未打开
【发布时间】:2011-03-09 20:53:54
【问题描述】:

我有一个使用 App Engine 和通道 API 构建的 2 人纸牌游戏应用。在大多数情况下它工作得很好,但我在 Firefox 中遇到了一个奇怪的问题。

当我在 Firefox 中进入游戏时,我调用了 socket.open,但没有任何反应。我从来没有收到 onopen 回调,也没有收到任何我知道应该在路上的消息。奇怪的是,如果我刷新页面,频道就会正确打开!这只发生在 Firefox 中,所有其他浏览器都可以正常工作。另外,如果我打开了 Firebug,则通道会正确打开。所以,看起来这可能是一个时间问题。一些更相关的细节:

  • 引用jsapi的脚本标签不在head标签内,而是在body标签内。
  • 我在 jquery 的 $(document).ready 回调中调用 socket.open。
  • 我在错误控制台中没有看到任何脚本错误。它只是默默地失败了。

那么,有什么想法吗?如果不是为了修复,那么至少有人知道我如何从 Channel API 获取日志信息,我可以在混淆的源代码中看到它记录了不同的内容,但无法弄清楚如何获取日志消息。

【问题讨论】:

    标签: javascript google-app-engine comet channel-api


    【解决方案1】:

    有两件事要尝试:

    • 将 jsapi 引用移至 HEAD 部分
    • 尝试改用 $(document).load 回调

    正如您所提到的,这听起来确实像是一些时间问题。

    【讨论】:

      猜你喜欢
      • 2020-01-31
      • 2018-01-05
      • 1970-01-01
      • 2013-10-25
      • 1970-01-01
      • 1970-01-01
      • 2011-12-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多