AJAX: перезагрузить load () при ошибке через X секунд - PullRequest
0 голосов
/ 19 июля 2011

Я использую следующую функцию для получения информации из файла с помощью load (). Если содержимое не загружается должным образом, будет отображаться сообщение об ошибке. Это прекрасно работает, но я хочу перезагрузить запрос через X секунд. Я сделал это далеко:

var tick = function() {
    $('#fetch-1').hide();
    $('#fetch-2').hide();
    $('#fetch-3').hide();
    $('#fetch-4').hide();
    $('#fetch-5').hide();
    $('#fetch-6').hide();

    $('#fetch-1-error').show();
    $('#fetch-2-error').show();
    $('#fetch-3-error').show();
    $('#fetch-4-error').show();
    $('#fetch-5-error').show();
    $('#fetch-6-error').show();
}

var loadTimeout = setTimeout(tick, 1000);
var tack = 1000;

    $.ajax({
        url: '/game/configs/required/jquery-fetch/fetch-1.php?i=<?php echo $row["id"]; ?>',
        timeout: tack,
        cache: false,
        success: function(data) {
            $('#fetch-tpb-filesize').load('/game/configs/required/jquery-fetch/fetch-1.php?i=<?php echo $row["id"]; ?>');
            clearTimeout(loadTimeout);
        },
        error: function(data) {
            setInterval(function() {
                $('#fetch-1').show();
                $('#fetch-1').load('/game/configs/required/jquery-fetch/fetch-1.php?i=<?php echo $row["id"]; ?>');
                $('#fetch-1-error').hide();
            }, 1000);
        }
    });

Как вы видите по ошибке, я попытался перезагрузить его, но он не останавливается через 1 секунду, как в первый раз. Кто-нибудь здесь, кто знает, как решить проблему?

1 Ответ

2 голосов
/ 19 июля 2011

Вы используете setInterval внутри функции ошибки, которая будет вызывать этот блок кода каждую секунду.

Также вы используете метод jQuery, который делает всю грязную работу за вас.Если вы хотите использовать timeout: tack, вам нужно снова использовать $ .ajax.Почему бы вам просто не сделать это функцией и не вызывать ее снова вместо копирования и вставки кода, кода и кода повсюду.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...