嗨,我想刷新頁面中的文本,通知有關服務器端的計算狀態,而他們正在完成。計算從獲取請求開始,刷新只有在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