gpt4 book ai didi

javascript - 回想长轮询AJAX请求失败/网络离线时的情况

转载 作者:行者123 更新时间:2023-11-28 08:14:43 25 4
gpt4 key购买 nike

我正在 PHP/Node.js 应用程序中成功实现长轮询。我创建了一个例程,用于在计算机唤醒( sleep 模式后)后启动长轮询 AJAX 请求,如下所示。


问题是 AJAX 请求由于互联网连接而失败,因为它需要一些时间来准备,这会导致 AJAX 请求失败。我需要再次调用此请求,直到互联网恢复,但我找不到任何方法来知道上一个请求是否未能发送新请求并跟踪其状态。

我没有使用 Jquery,也不想使用它。

如果直接 AJAX 调用在超时秒内未到达服务器,我可以为直接 AJAX 调用创建超时,但长轮询请求状态在服务器上等待 40 秒,我需要检测它是否在 2 秒后失败发送后的秒数。

有没有与 xmlHTTP 对象有关的解决方案?

非常感谢您的帮助。谢谢。

var program ={
init: function(){
this.isSleep = function(lastTime){

var lastTime = lastTime;

clearTimeout(program.tt)
program.tt = setTimeout(function(){

var currentTime = new Date().getTime();
if(currentTime > (lastTime + 2000*2) ){

// request fails if the internet connection was not ready
ajax.call({ // long polling request......});
}

program.isSleep(new Date().getTime());


}, 2000);
};

this.isSleep(new Date().getTime());
}
}

最佳答案

将变量设置为 true,然后调用计时器 2 秒。如果 ajax 返回,则将该变量设置为 false,如果计时器被触发,则检查您的变量并执行您需要执行的操作。

关于javascript - 回想长轮询AJAX请求失败/网络离线时的情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23754864/

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