с использованием SetTimeout с вызовами Ajax

Я пытаюсь использовать setTimeout, чтобы проверить, существуют ли данные в таблице:

Если данные существуют, не извлекайте данные. Если данные не существуют, загрузите данные, используя load, а затем делайте то же самое каждые x минут.

Вот что у меня есть на данный момент. По какой-то причине setTimeout не работает при попадании в блок If.

Я даже не уверен, что это лучший способ сделать это.

    var sTimeOut = setTimeout(function () {
        $.ajax({
            url: 'CheckIfDataExists/' +
                         new Date().getTime(),
            success: function (response) {
                if (response == 'True') {
                    $('.DataDiv')
                      .load('GetFreshData/' + new Date()
                          .getTime(), { "Id": $("#RowID").val() });
                }
            },
            complete: function () {
                clearTimeout(sTimeOut);
            }
        });
    }, 10000);

Любая помощь будет принята с благодарностью.

Обновлено ...

    setTimeout(function(){checkData()}, 5000);
    function checkData(){
    $.ajax({ 
            url: 'CheckIfDataExists/' + 
                             new Date().getTime(),
            success: function (response) {
                if (response == 'True') {                     
                    $('.DataDiv')
                          .load('GetFreshData/' + new Date()
                              .getTime(), { "Id": $("#RowID").val() });
                } else {
                    $('.OutOfWindow').html('No Data Found');
                    setTimeout(function () { checkData() }, 5000);
                }
            }, 
            complete: function () { 
               // clearTimeout(sTimeOut); 
            } 
        }); 
    }
10
задан gideon 19 February 2012 в 17:25
поделиться