gpt4 book ai didi

javascript - (移动)Safari/Chrome 何时考虑使用 Comet 加载页面?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:51:29 26 4
gpt4 key购买 nike

我有一个使用长轮询 cometd 连接的网站。需要在页面加载时/之后设置连接。

尽管我努力阻止它,但许多浏览器认为长轮询请求是页面加载机制的一部分,从而使页面保持在“加载”阶段。在 Safari 中,这会导致进度条(在 url 字段后面)无法完成。在 Chrome 中,网站图标显示为旋转的加载图标。更有问题的是 iphone 上的移动 safari,它不允许在“加载”时隐藏 url 字段。 Mobile android 在某些设备上也有类似的问题。

总而言之,该行为很难重现并且似乎取决于浏览器/平台/连接速度/等。现在,我的代码在 window.onLoad 触发器 后启动长轮询 10 毫秒。这似乎经常运作良好,但并非总是如此。我怀疑这可能与加载一些外部(图像/javascript)资源有关,但有人会说 onLoad 事件在这些完全加载后 被触发。

任何人都可以指导如何强制这些浏览器将我的页面视为已加载?理想情况下,可以以某种方式将 xmlhttprequest 标记为类似 cometd ,但这不是功能:)。

最佳答案

我遇到了同样的问题,发现如果您允许页面在发出长轮询 ajax 请求之前退出它的加载处理程序,一切正常并且页面不会返回到加载状态。

例如,通常是什么

$(document).ready(function() { $.ajax(...); });

会变成

$(document).ready(function() setTimeout(function() { $.ajax(...); }, 0); });

在 WebKit 的特殊情况下,我认为 $(document).ready 是 window.onload 的同义词。这就是它的重要性。

这对我在装有 iOS 5 的 iPad1,1 上有效。

关于javascript - (移动)Safari/Chrome 何时考虑使用 Comet 加载页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3998012/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com