【问题标题】:iPad AJAX Calls error out after 30 minutes30 分钟后 iPad AJAX 呼叫错误
【发布时间】:2011-10-29 03:31:17
【问题描述】:

我正在构建一个打算在 iPad 上使用的网络应用程序(保存的书签、视口标签等)。 Web 应用每 2 分钟向不安全的服务器(例如,没有可以超时的会话 cookie)发出 AJAX 请求(使用 jQuery),返回 JSON。

但是,30 分钟后,请求停止发送到服务器,我想停止从 iPad 发送。我查看了 jQuery 错误回调的参数,其中显示了 textStatus == "Error"errorThrown == ""。是的,errorThrown 没什么,这也是我感到困惑的部分原因。

我尝试在 30 分钟后执行用户发起的 AJAX 调用,但返回了相同的错误。如果不清楚,javascript 仍在运行:只是 AJAX 调用失败。此外,除了 iPad,这种行为不会发生在任何地方。

任何想法为什么会发生这种情况,或者如何解决它?

【问题讨论】:

  • 您可以使用 Wireshark 检查进出服务器的 HTTP 流量吗?
  • 我想知道 Ipad 中是否有一些设置可以防止在一段时间内发生过多的请求,作为一种防止无线设备上失控请求的安全方法。不过我完全没有使用 Ipad 设备的经验。
  • 我认为不是:我将请求速率更改为 5s 仍然需要 30 分钟。可能是设置中某处超时,但我找不到。
  • 好吧,我以前不知怎么没有注意到/注意到这一点,但 iPad 仅在使用电池时才会这样做。这很有意义,并指出了一些用户无法更改的“网络活动”超时(至少,我找不到任何这样的事情)。
  • 添加您自己的答案并接受它 - 这将有助于人们将来搜索。

标签: javascript jquery ios ipad


【解决方案1】:

事实证明,在使用电池时,iPad 2 在同一页面(例如长期存在的 web 应用程序)上停留 30 分钟后会削弱 AJAX 请求。似乎没有用户可配置的设置来更改此超时。

【讨论】:

  • 随机的想法。更改 document.location.hash 是否会使其认为已加载新页面?会很老套,但可以提供一种解决方法。
  • 我尝试每 27 分钟重新加载一次页面,但也没有用,因为它在 30 分钟标记处断开连接,所以我怀疑哈希操作会欺骗它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-05
相关资源
最近更新 更多