gpt4 book ai didi

ajax - 在进行中的 Ajax 请求时重新加载页面给出空响应和状态为零

转载 作者:行者123 更新时间:2023-12-01 08:10:31 24 4
gpt4 key购买 nike

浏览器为 Firefox 3.0.10。我正在请求使用 Ajax 的页面。响应正在进行中可能处于 readyState 小于 4。与此同时,我正在尝试重新加载页面。请求结束,返回空响应。

我使用警报来查找作为响应文本给出的字符串。我假设此时已达到就绪状态 4。为什么是空字符串?

当我警告 xmlhttpobject.status 时它显示 0。

当我提醒 xmlhttpobject.statusText 发生异常时,显示“NOT AVAILABLE”。

当我阅读文档时 http://www.devx.com/webdev/Article/33024/0/page/2它说 3 和 4 statusstatusText 可用,但当我测试时只有 status 可用,但没有 satausText。

这里是示例代码。

假设我请求了一个页面,我的回调函数如下

function cb(rt)
{
if(rt.readyState==4)
{
alert(rt.status);
alert(rt.statusText); // which throws an exception
}
}

我的服务器端脚本如下

sleep(30);
//flushing little drop down code

除了这些,我还注意到以下几点。

再次假设我使用 Ajax 请求上述脚本。现在将有 30 秒的空闲时间。在那 30 秒之前,我按刷新。我得到 xmlhttpobject.status as, 0 但浏览器直到 30 秒才重新加载页面。为什么?

当我在 Ajax 请求完成之前刷新页面时,状态值设置为零,就绪状态设置为 4,但页面仍在等待服务器的响应结束。

发生了什么事?

我面对这样的事情的原因如下。

每当我执行 Ajax 请求时,如果过程成功(例如插入某些内容或删除某些内容),我会弹出一个说明已成功更新的 div,然后我将重新加载页面。但是,如果有任何错误,那么我不会重新加载页面,而只是警告无法处理此请求。

如果用户在这些请求中的任何一个完成之前重新加载页面,我会得到一个空的响应,在我的计算中这是服务器错误。所以我正在调试 Ajax 响应以过滤掉由于用户按下重新加载而导致连接中断的情况。所以这次我不想在请求完成之前用户重新加载页面时显示“无法处理此请求”。

哦……说来话长。这是一个很长的描述,以便我可以让专家理解我的疑问。

所以我想要的是上面的内容。

任何类型的答案都会让我头脑清醒。或者我想说出所有类型的答案。

编辑:12 月 19 日。如果我没有得到任何正确答案,那么我将删除此问题并用示例重写。否则我会在试验后接受。

我将创建一个演示程序,并在此处发布链接,以便您了解我所面临的问题。今天是 2010 年 12 月 29 日。

最佳答案

这与浏览器版本无关。

当浏览器检测到页面发生变化(例如重新加载)时,它会中止所有 XHR电话。每个浏览器都这样做。这是一件体面的事情。

我的问题是:当 ajax 请求正在运行时,您为什么要重新加载页面?

我的解决方案是:跟踪所有 ajax 请求并“手动”中止它们(是的,您可以这样做:https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest#abort() 当您离开页面时(onunloadonbeforeunload )。

关于ajax - 在进行中的 Ajax 请求时重新加载页面给出空响应和状态为零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4202060/

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