大佬教程收集整理的这篇文章主要介绍了javascript – 长时间投票jQuery.ajax()在电话睡眠后无法回调?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
var version = "0"; function updater() { $.ajax({ type: "POST",url: "/listen",data: version,success: function (data) { version = handleupdates(data); updater(); },error: function () { setTimeout(updater,1000); } }); }
它在桌面浏览器和手机上工作正常,除了一种情况.我已经发现,在Android手机与Chrome的东西奇怪的事情后,手机已经睡了超过约10分钟.帖子请求似乎被删除,我猜这是合理的,因为手机睡着了.在Chrome调试器的“网络”选项卡中,POST请求的状态文本说(已取消).
问题是当我在取消请求时唤醒电话,没有调用success()或error()函数,并且我的Web应用程序从来没有被更新. $.ajax()已经打破了我的回报.
问题只发生在某些设备上.我已经能够通过向朋友借用设备进行一些特别测试.到目前为止,我只看到Android手机上的问题.但是手机没有连接到充电器.我没有在任何平板电脑,苹果设备或Windows PC上看到它.
我已经尝试为ajax设置添加一个超时:
timeout: 120 * 1000,
这有助于因为在唤醒后最多2分钟就会调用error()函数.但是我希望用户在1秒或2秒内查看更新.我不想使超时这么短,因为它会创建不必要的服务器流量.
我也尝试检测设备是否睡眠,通过在一秒钟的seTinterval中查找迟到,如Can any desktop browsers detect when the computer resumes from sleep?所述.
当我检测到唤醒时,我中止()该帖子并启动另一个.这在大多数情况下都有帮助.但事实证明是不可靠的.有时,在睡眠期间,时间事件似乎保持正常,并且发布请求也被取消.它不觉得像一个可靠的解决方案.
我正在使用最新版本的jQuery:(2.1.2)和Chrome(47).
以上是大佬教程为你收集整理的javascript – 长时间投票jQuery.ajax()在电话睡眠后无法回调?全部内容,希望文章能够帮你解决javascript – 长时间投票jQuery.ajax()在电话睡眠后无法回调?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。