我收到了一个我无法复制的错误报告,但是ajax-call timeout是当前最好的猜测.
所以我试图找出jQuery $.ajax()调用超时的默认值.有人有想法吗?在jQuery文档中找不到它.
提前谢谢,马库斯
浏览器是否内置了超时,如果是,那么它们是什么?
我有一个页面在一个进程上执行AJAX调用,最多运行5分钟.有人说浏览器在2分钟后超时,但不知道是否有任何道理.
根据这个问题:我在哪里可以找到所有浏览器的默认超时设置?每个浏览器都有一个超时默认设置
检查后about:configFirefox17中的默认超时为115秒.但是我已经测试过运行一些我定时的请求,它在> 150秒后返回了一个请求.
所以我想知道它是如何工作的,难道Firefox不应该超时吗?
在JavaScript类中,XMLHttpRequest连接到服务器.服务器正在缓慢地发送数据.这在Chromium中运行良好,但Firefox在随机时间后(约4s到~70s之间)关闭连接.
为什么Firefox会关闭连接?以及如何避免这种情况?
简化的JS代码:
var options = {};
options['header']=
{ 'Cache-Control':'no-cache, max-age=0',
'Content-type': 'application/octet-stream',
'Content-Disposition': 'inline'
};
// Get request information
this.http = new XMLHttpRequest();
this.http.onreadystatechange = _streamingResponse.bind(this);
this.http.open('post', url, true);
for (var i in options['header'])
{
this.http.setRequestHeader(i, options['header'][i]);
}
this.http.send('');
Run Code Online (Sandbox Code Playgroud)
对于PHP部分,类似于:
sleep(200); //wait long time, so firefox close the socket.
Run Code Online (Sandbox Code Playgroud)
如果服务器每隔几秒钟(<5s)发送一次内容,则连接会"永远"保持活动状态.但是如果没有发送数据,Firefox会关闭连接.
连接关闭: - readyState = 4 - status = 0
服务器似乎是正确的,因为在Chromium中它可以正常工作.
完整的测试代码:
的test.html
<html>
<header>
</header>
<body>
</body>
<script type="application/javascript">
function log( msg )
{
document.body.appendChild(document.createElement('div').appendChild(document.createTextNode(msg)));
document.body.appendChild(document.createElement('br'));
}
function request(url) …Run Code Online (Sandbox Code Playgroud) 我正在写一个基于AJAX/COMET的在线聊天室.我的设计是:
请求
-----------------等待------------------------->发送转储数据
-----------------等待------------------------->发送转储数据
-----------------等待------------------------->发送转储数据
-----------------等待------------------------->发送转储数据
-----------------等待------------------------->发送转储数据
------发生了什么事,得到回应.
另一个要求..... ....
如您所见,服务器保留请求并等待发生的事情,如果发生了某些事件,只需推送数据并完成请求.然后客户端将发出另一个请求.在请求中有勾选,因此如果在两个请求的间隙之间发生事件,则服务器知道客户端有待处理的事件.
在浏览器超时之前,服务器还会发送一些空闲数据以防止客户端超时.
现在,问题出现了:不同浏览器的超时行为是什么?我知道浏览器发送请求并等待数据,如果等待时间太长,它会超时.但是不同浏览器的超时行为是什么?是否有任何标题可以控制浏览器的超时行为?通过了解浏览器的超时行为,以便我可以决定如何处理它们.我在哪里可以找到这些数据?
从我的Web应用程序调用Web服务之前,我设置了一个特定的超时时间,此后如果未得到任何响应,则呼叫结束。
如果我将此超时设置为例如10',又有另一个超时,然后Chrome不想等待此响应怎么办?
谢谢
当我在浏览器中加载某些内容时,浏览器尝试建立连接的默认时间是多少?
可以用 Javascript 或 HTML 来增加吗?
我需要的情况是没有服务器端循环的服务器端时间采样等。