运行 jQuery ajax 自定义间隔

Run jQuery ajax in custom intervals

我有一个 jQuery ajax 函数。在页面加载时,它应该 而不是 被执行。然后5分钟后应该执行,然后5分钟后再次执行等等...

这是我的代码:

jQuery(document).ready(function(){
  jQuery.ajax({
    url: "/wp-admin/admin-ajax.php",
    data : {action: "check_noti_log"},
    context: this,
    success:function(data){
        // return new logs (data)
        jQuery('#ajax_new_logs').html(data);
    }
  });
});

如何实现?

您可以使用 setInterval。第一个参数是您要执行的函数,第二个参数定义执行代码的间隔(以毫秒为单位)。在您的情况下 5 minutes = 300 seconds300*1000 milliseconds.

setInterval(function() {
    jQuery.ajax({
    url: "/wp-admin/admin-ajax.php",
    data : {action: "check_noti_log"},
    context: this,
    success:function(data){
        // return new logs (data)
        jQuery('#ajax_new_logs').html(data);
    }
  });
}, 300000);

一个简单的方法是将超时设置为五分钟,然后在代码执行后再次调用您的函数。如果该代码损坏,请告诉我,我无法在我的环境中对其进行测试。

jQuery(document).ready(function(){
function periodicCallAJAX(){
    setTimeout(function(){
      jQuery.ajax({
         url: "/wp-admin/admin-ajax.php",
         data : {action: "check_noti_log"},
         context: this,
         success:function(data){
            // return new logs (data)
            jQuery('#ajax_new_logs').html(data);
         }
     });
     periodicCallAJAX();
    },300000);
    }
   });