浏览器是Firefox 3.0.10。我正在使用Ajax请求一个页面。响应正在进行中可能处于readyState小于4.同时我正在尝试重新加载页面。请求结束,给出一个空的答复。当Ajax请求正在进行时,重新加载页面会将空响应和状态设置为零
我用警报找到了什么字符串作为响应文本。我假设到此时就绪状态4已到达。为什么它是一个空字符串?
当我提醒xmlhttpobject.status当我提醒发生异常xmlhttpobject.statusText,指出“不可用”它显示为0。
。
当我在文件http://www.devx.com/webdev/Article/33024/0/page/2中看到它说3和4 status
和statusText
都可用,但是当我测试只有状态可用,但不是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响应,以滤除由于用户按下重新加载而导致连接中断的情况。所以这次我不想显示“无法处理这个请求”,当用户在请求完成之前重新加载页面时。
哦......长话短说。这是一个很长的描述,所以我可以让专家了解我的怀疑。
所以我想要形成上述。
任何类型的答案都会清除我的想法。或者我想说所有类型的答案。
编辑:19 dec。 如果我没有得到任何正确的答案,那么我会删除这个问题,并用实例重写。否则我会在试验后接受。
我将创建一个演示程序,我将在这里发布链接,以便我可以让您了解我所面临的问题。今天是29.dec.2010。
你正在使用什么浏览器? – 2010-11-17 06:36:33
我的第一行... firefox 3.0.10 – 2010-11-19 12:18:44
尝试降低睡眠时间到10秒也许请求超时30 – Pablo 2010-12-23 16:11:57