gpt4 book ai didi

javascript - Comet(长轮询)和 XmlHttpRequest 状态

转载 作者:搜寻专家 更新时间:2023-11-01 04:27:56 24 4
gpt4 key购买 nike

我正在尝试使用原始 XmlHttpRequestObjects + Comet Long Polling。 (通常,我会让 GWT 或其他框架为我处理这件事,但我想了解更多相关信息。)

我写了下面的代码:

function longPoll() {
var xhr = createXHR(); // Creates an XmlHttpRequestObject
xhr.open('GET', 'LongPollServlet', true);
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {

if (xhr.status == 200) {
...
}

if (xhr.status > 0) {
longPoll();
}
}
}
xhr.send(null);
}

...
<body onload="javascript:longPoll()">...

我将 longPoll() 调用包装在检查 status > 0 的 if 语句中,因为我遇到过,当我离开页面时(通过浏览其他地方) ,或通过重新加载它),最后一次不必要的 cometd 调用被发送。 [在 Firefox 上,它甚至会在重新加载页面时导致严重问题,出于某些我还不完全理解的原因。]

问题:status检查是处理这个问题的正确方法,还是有更好的解决方案?

最佳答案

我目前的答案 - 直到被证明是错误的 - 是解决方案是正确的。

关于javascript - Comet(长轮询)和 XmlHttpRequest 状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2624626/

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