如何设置ajax每5秒运行一次

时间:2015-09-17 12:14:50

标签: javascript jquery ajax

如何设置此ajax每5秒运行

$(document).ready(function() {
    var SrNo = document.getElementById('EntryType').value;
    var EntryType = document.getElementById('EntryType').value;
    $.ajax({
        type: "POST",
        url: "get_max_srno.php?CID=" + SrNo + "&EntryType=" + EntryType,
        data: {
            SrNo: $("#EntryType option:selected").val()
        },
        data: {
            EntryType: $("#EntryType option:selected").val()
        }
      })
      .done(function(msg1) {
          var msg = msg1;
          document.getElementById('SrNo').value = msg1;
      });
});

2 个答案:

答案 0 :(得分:3)

function autoCall(){
var feedback = $.ajax({
    type: "POST",
    url: "autocall.php",
    async: false
}).success(function(){
    setTimeout(function(){autoCall();}, 5000);
}).responseText; 
$('div').html(feedback);
}

如果您希望仅在成功完成通话后才能运行,

你可以在.ajax()。success()回调中设置它:

如果您希望它运行而不管结果如何,请使用.ajax()。complete():

这里是解释success()和complete()的演示。 这里complete()将每5秒触发一次,因为成功返回404。

希望每个看到这类问题的人都会感兴趣。

Working Demo

答案 1 :(得分:1)

您可以使用setInterval功能。

供参考 https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers/setInterval

var reloadContent = function () {

    var SrNo = document.getElementById('EntryType').value;
    var EntryType = document.getElementById('EntryType').value;

    $.ajax({
        type: "POST",
        url: "get_max_srno.php?CID=" + SrNo + "&EntryType=" + EntryType,
        data: {
            SrNo: $("#EntryType option:selected").val()
        },
        data: {
            EntryType: $("#EntryType option:selected").val()
        }
      })
      .done(function(msg1) {
          var msg = msg1;
          document.getElementById('SrNo').value = msg1;
      });

}

$(document).ready(function() {

    var reloadContentInterval = setInterval(reloadContent, 5000);

    // You can cancel it later if you want
    // clearInterval( reloadContentInterval );

});