在Firefox中首次加载时,通道API套接字无法打开

时间:2011-03-09 20:53:55

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

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

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

  • 引用jsapi的脚本标记不在head标记内,它位于正文中。
  • 我在jquery的$(document).ready callback中调用socket.open。
  • 我在错误控制台中看不到任何脚本错误。它只是无声地失败。

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

1 个答案:

答案 0 :(得分:1)

尝试两件事:

  • 将jsapi引用移动到HEAD部分
  • 尝试使用$(document).load callback而不是

正如你所提到的,这肯定听起来像是时间问题。