嗨,我想刷新页面中的文本,通知有关服务器端的计算状态,而他们正在完成。计算从获取请求开始,刷新只有在get没有完成时才会发生。我试图通过在setInterval中获取服务器上的文本文件的内容并在GET完成后关闭该设置时间间隔来完成此操作。我的问题是,当我看到发生了什么事情时,我只看到一个文本文件的请求,一开始就没有。我希望从我的代码中每隔200毫秒就会看到一个请求。 我附上了js代码,并提前感谢你。由onclick开始的函数是disps(name);在等待GET完成时的Javascript setInterval
function instant(nn) {
$.get("./track.txt", function (data) {
$('[name|="' + nn + '"]').html('');
$('[name|="' + nn + '"]').html(data);
/*$('[name|="'+ nn +'"]').first().html('');
$('[name|="'+ nn +'"]').first().append('<img src="loading.gif">');*/
});
}
function disps(nn) {
aa = $('[name|=input_data]').val();
/* $('[name|="'+ nn +'"]').html('');
$('[name|="'+ nn +'"]').html('Analysed');
$('[name|="'+ nn +'"]').first().html('');
$('[name|="'+ nn +'"]').first().append('<img src="loading.gif">'); */
var refreshId = setInterval(instant(nn), 200);
$.get("./loop.php?query=" + aa, function (data) {
/* $('[name|="'+ nn +'"]').find('img').remove().end(); */
instant2(nn, refreshId);
$('[name|="' + nn + '"]').first().append(data);
});
}
function instant2(nn, refreshIntervalId) {
clearInterval(refreshIntervalId);
$('[name|="' + nn + '"]').html('');
$('[name|="' + nn + '"]').first().html('');
}
请正确缩进你的代码。 – Bergi 2013-03-17 14:19:33
在等待HTTP请求完成时执行HTTP请求是一个坏主意。 – Pointy 2013-03-17 14:19:33
@积分是的,但给我一个选择。 – Evan 2013-03-17 14:26:01