2013-12-14 16 views
5

Khi nút "getproduct" được nhấp, cuộc gọi ajax sẽ nhận được sản phẩm hoặc mã 404 nếu sản phẩm không có sẵn.Cách lặp lại cuộc gọi ajax cho đến khi thành công

Tôi muốn hàm getMyJson được gọi lại sau mỗi 5 giây cho đến khi sản phẩm được trả về.

Bất kỳ ý tưởng nào?

$(function() { 
    $("#getproduct").click(function getMyJson() { 
     $.ajax({ 
      type: "GET", 
      url: "Product/GetProduct", 
      dataType: "json", 
      success: function (data) { 
       //alert("succes"); 
       $("#name").html(data.Name); 
       $("#price").html(data.Price); 
      }, 
      error: function() { 
       //alert("fail"); 
       //callback getMyJson here in 5 seconds 
      } 
     }); 
    }); 
}); 

Trả lời

13

Bạn có thể sử dụng setTimeout trong error hàm callback

$(function() { 
    function getMyJson() { 
     $.ajax({ 
      type: "GET", 
      url: "Product/GetProduct", 
      dataType: "json", 
      success: function (data) { 
       //alert("succes"); 
       $("#name").html(data.Name); 
       $("#price").html(data.Price); 
      }, 
      error: function() { 
       //alert("fail"); 
       //callback getMyJson here in 5 seconds 
       setTimeout(function() { 
        getMyJson(); 
       }, 5000) 
      } 
     }); 
    } 
    $("#getproduct").click(function() { 
     getMyJson(); 
    }); 
}); 
+0

Nó hoạt động hoàn hảo. Cảm ơn nhiều :-) – Maxime

Các vấn đề liên quan