javascript - 我想使用 setInterval() 每 1 秒更新一次输出列表,但它会得到无限循环输出

标签 javascript jquery ajax

我想每 1 秒更新一次我的姓名列表,所以我尝试 setinterval() 但它会循环。有什么解决办法吗?

 <script>
 getcus();
 function getcus(){
 $(document).ready(function() { 
    $.get('<?php echo base_url();?>index.php/site/get_all_customer_ajax', function (data) {
          var obj = JSON.parse(data)
          for (var i=0;i<obj.customer.length;++i)
          {
          $('#names').append(obj.customer[i].first_name + "<br>");
          }
    });
 });
   setInterval(getcus, 1000);
  };

输出

玛丽亚
何塞
克拉克
玛丽亚
何塞
克拉克
玛丽亚
何塞
克拉克
玛丽亚
何塞
克拉克

无限远..

最佳答案

在追加之前清空#name div setTimeout getfocus 函数,因为它会调用自身,所以在这种情况下不需要 setInterval。在成功回调中使用 setTimeout 以确保下一个请求将在第一个请求成功后调用

$(document).ready(function() { 
	 getcus();
});

function getcus(){
	 $.get('<?php echo base_url();?>index.php/site/get_all_customer_ajax', function (data) {
		 var obj = JSON.parse(data);
		 $('#names').empty();
		 for (var i=0;i<obj.customer.length;++i)
		 {
		 	$('#names').append(obj.customer[i].first_name + "<br>");
		 }
          setTimeout(getcus, 1000);
	});
	
};

关于javascript - 我想使用 setInterval() 每 1 秒更新一次输出列表,但它会得到无限循环输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39176897/

相关文章:

javascript - 如何在 body 负荷时调用函数

javascript - 在同一列表中拖动时以及从一个列表移动到连接列表时如何区分可排序更新事件

javascript - 如何制作包含特殊字符(如单词边界)和变量的正则表达式?

javascript - 如何使用对象解构处理嵌套的默认参数?

javascript - 将 Javascript 对象保存到 Chrome.Storage

javascript - 使表数据出现在悬停时(javascript/jQuery 或 css)

ajax - Wicket 口 6 : Howto inject a javascript function via AbstractDefaultAjaxBehavior?

jquery - CORS jQuery AJAX 请求

javascript - CSS Hover 被停用

jquery - Blueimp jQuery 文件上传与 ASP.NET Core 3.1 不兼容