2011-01-24 2 views
1

По какой-то причине window.setTimeout (обновление, 5000); не работает. Он не повторяет функцию через 5 секунд после ошибки.jQuery AJAX autorefresh при ошибке

function powercyclestatus() { 
    $("#status").html("<div align='center'><img src='modules/servers/flosoftdedicated/images/ajax/loading-warning.gif' border='0' alt='' /><br />Requesting Powercycle Status.</div>"); 
    $('#status').addClass('warning'); 
    $.ajax({ 
    type: 'GET', 
    url: 'clientarea.php', 
    data: 'action=productdetails&id=' + $('#serverid').val() + '&modop=custom&a=powercyclestatus', 
    timeout: 10000, 
    success: function(data) { 
     $("#powercycleresult").html(data); 
     $("#status").html("<div align='center'><img src='modules/servers/flosoftdedicated/images/ajax/success.png' border='0' alt='' /><br />Powercycle complete.</div>"); 
    }, 
    error: function(XMLHttpRequest, textStatus, errorThrown) { 
     $("#status").html(XMLHttpRequest.responseText); 
     $("#powercycleresult").html(); 
     window.setTimeout(update, 5000); 
    } 
    }); 
} 

ответ

1

Сценарий пытается вызвать функцию update через 5 секунд. Бит их не является функцией обновления.

Я думаю, что вы хотите повторить функцию powercyclestatus. So sou need

window.setTimeout(powercyclestatus, 5000); 
0

Что вы пытаетесь повторить? У вас нет функции «обновления» в коде, пытаетесь ли вы снова запустить всю функцию powercyclestatus()? В этом случае:

window.setTimeout(powercyclestatus, 5000); 
+0

ah, тот же комментарий был добавлен во время публикации. Вы можете просто вспомнить часть ajax функции powercyclestatus, и в этом случае вы могли бы обернуть это и в функцию, и снова вызвать эту часть. – Jeff