首页 > 解决方案 > 使用 setInterval 时隐藏 div 刷新

问题描述

我使用 setInterval 每 5 秒更新一次表格,这很好用,只是它会创建一个“闪烁”效果,因为 Div 就像我按下一样刷新F5

是否可以使用示例fadeIn()函数隐藏它?我已经尝试过,但到目前为止没有任何运气。有人对这个有经验么?

var append_increment = 0;
setInterval(function() {
  $("#_change tr").remove();
  $.ajax({
      type: "GET",
      url: "{% url 'tables' %}",
      data: {
        ' tables ': append_increment
      }
    })
    .done(function(response) {
      $('#_change').append(response).fadeIn("milliseconds", "linear");

      append_increment += 0;
    });
}, 5000)

标签: javascriptjquerysetinterval

解决方案


闪烁是因为您在 ajax 调用完成之前而不是之后更新内容

你可以试试这个

var append_increment = 0;
var Di = setInterval("clearInterval(Di);GetData();", 5000);
        function GetData(){
$.ajax({
            type: "GET",
            url: "{% url 'tables' %}",
            data: {' tables ': append_increment}
        })
        .done(function(response) {
            $('#_change tr').html(response).fadeIn(500, "linear");
            Di=setInterval("clearInterval(Di);GetData();",5000);
            append_increment += 0;
        });
}
  1. 也让来自服务器的 html 响应没有<tr></tr>

推荐阅读