我的任务是做一个长时间运行的 JS 代码。此例程生成一个 POST 请求,当它结束并需要时,根据答案生成另一个:
function routine (a)
{
var answer = createPostRequest (bla bla bla);
if (answer)
{
routine (a);
}
}
所以只要答案是真的,它就会递归地调用自己。到目前为止它很好,但是浏览器冻结或挂起太多。一段时间后,Firefox 会告诉我脚本运行时间过长,并提出停止它。routine (a);
我没有尝试使用计时 1 来做。setTimeout
同样的事情,但是当我将计时设置为 100 时,它看起来还可以。但是有不必要的等待,加上它是一个主观的数字(如果即使是 100 也会导致问题呢?)我需要某种“基于消息”的东西,就像在 Delphi/Windows 编程中一样:程序向自己发送消息。在 JS 中如何实现?
编辑:我生成请求的方式:
var ajax = createXmlHttp();
ajax.open ('POST', 'dsdsdsad.adsf', false);
var parameters = 'param=1';
ajax.setRequestHeader ('Content-type', 'application/x-www-form-urlencoded');
ajax.setRequestHeader ("Content-length", parameters.length);
ajax.setRequestHeader ("Connection", "close");
ajax.send (parameters);
try
{
var answer = eval('(' + ajax.responseText + ')');
}
catch (error)
{
alert ('Error in the answer: '+ajax.responseText);
return;
}