Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Preciso adicionar uma função de timeout na minha requisição AJAX e peço ajuda aos colegas.
Já tenho um AJAX que funciona normalmente. Preciso de ajuda para saber como implementar um timeout no código que já tenho.
Vejam o código. É um script genérico, para ser reutilizado pelas diversas functions do sistema, que precisam trazer dados.
const server = {
req : null,
res : null,
ajax : function(strReq, functionResposta)
{
this.req = strReq
this.url = this.req.url
this.req = JSON.stringify(this.req);
this.status = 0;
try
{
if (window.XMLHttpRequest)
{
$obj = new XMLHttpRequest();
}
else
{
$obj = new ActiveXObject('Microsoft.XMLHTTP');
}
$obj.onreadystatechange = function()
{
if ($obj.readyState == 4 && $obj.status >= 200 && $obj.status <= 299)
{
server.res = JSON.parse($obj.responseText);
functionResposta();
}
}
$obj.open('post', this.url, true);
$obj.setRequestHeader('content-type', 'application/x-www-form-urlencoded');
$obj.send(encodeURI('str='+server.req));
}
catch(e)
{
this.req = null;
this.res = null;
}
}
};
Para chamar essa function, passando parâmetros, faço assim:
//crio uma string com parâmetros...
var obj={id:'XPTO', url:'/app/backend/'};
//invoco a function AJAX escrita acima
server.ajax(obj, function(){});}
Essa estrutura funciona normalmente. Só preciso mesmo saber como implementar um "timer" para responder assim que receber a resposta do servidor.Carregando comentários...