2011-07-19 62 views
0

我使用以下函數從load()文件中獲取信息。如果內容無法正常加載,它是否會顯示錯誤消息。這工作完美,但我想在X秒後重新加載請求。這一步我已經做了:AJAX:在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秒後的第一次不會停止。這裏有誰知道如何解決這個問題?

+2

給這些東西一個普通的className,所以你不需要6個隱藏和6個顯示行! – epascarello

回答

2

您在錯誤函數內部使用setInterval,它將每秒調用一次該代碼塊。

此外,您正在使用jQuery方法,爲您做所有的骯髒工作。如果你想使用timeout:tack,你需要再次使用$ .ajax。你爲什麼不把它作爲一個函數,並再次調用它,而不是複製粘貼代碼和代碼並遍佈整個代碼。

+0

謝謝你的回答。我不擅長jQuery和AJAX,但我正在學習。我很抱歉這個問題,但函數將如何? – Erik