AJAX:X秒后重新加载load()错误

时间:2011-07-19 17:17:40

标签: jquery ajax reload

我使用以下函数从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 个答案:

答案 0 :(得分:2)

您在错误函数中使用setInterval,它将每秒调用该代码块。

此外,您正在使用jQuery方法为您完成所有脏工作。如果你想使用timeout:tack,你需要再次使用$ .ajax。你为什么不把它作为一个函数再次调用它,而不是复制和粘贴代码,代码和代码到处。