每秒从ajax获取数组数据,并分别自动创建单元格

   function home() {
        // 1. 获取元素

        // 2.判断是否有数据返回
        const xhr = new XMLHttpRequest();
        // 设置响应体数据的类型
        xhr.responseType = 'json';
        // 2.初始化 设置类型与 url
        xhr.open('GET', 'https://57uz648984.goho.co/stopcar/shouye');
        // 3.发送
        xhr.send();
        // 4.事件绑定
        xhr.onreadystatechange = function () {
            // 判断
            if (xhr.readyState === 4) {
                if (xhr.status >= 200 && xhr.status < 300) {
                    // 处理服务端返回的结果
                    // 自动数据转换
                    // 往tbody 里面创建行
                    console.log(xhr.response.data);
                    var forms = document.querySelector('tbody');
                    var bianh = 0;
                    for (var i = 0; i < xhr.response.data.length; i++) {
                        // 创建 tr 行
                        var tr = document.createElement('tr');
                        forms.appendChild(tr);
                        bianh++;
                        // 在行里面创建单元格 td 单元格的数量取决于每个对象里面的属性个数  for循环遍历对象 datas[i]
                        for (let k in xhr.response.data[i]) {
                            if (k === 'ctime' && bianh === 1) {
                                var td = document.createElement('td');
                                var inputTime1 = +new Date(xhr.response.data[i][k]);//返回的是用户输入时间总的毫秒数 
                                // var timClass = document.getElementsByClassName('tim');
                                var nowTime = +new Date();  //返回的是当前时间总的毫秒数                                       
                                var times = (nowTime - inputTime1) / 1000;    //times是剩余时间总的秒数
                                var d = parseInt(times / 60 / 60 / 24);//天
                                var h = parseInt(times / 60 / 60 % 24);//时
                                h = h + (d * 24);
                                h = h < 10 ? '0' + h : h;
                                var m = parseInt(times / 60 % 60);//分
                                m = m < 10 ? '0' + m : m;
                                var s = parseInt(times % 60);//秒
                                s = s < 10 ? '0' + s : s;
                                td.innerHTML = h + ':' + m + ':' + s;
                            }
                            tr.appendChild(td);
                        }

                    }
                }
            }
        }

    }

引用GPT回答
在该代码段中,有一个可能会导致问题的潜在问题是 tr.appendChild(td) 应该在 for 循环中,而不是在 if 语句块中。这是因为如果当前对象的某个属性不是 'ctime',则代码不会创建一个新的单元格,从而可能导致单元格数量不正确的问题。

此外,如果数据量很大,则往 tbody 中添加行和单元格可能会影响性能。为了避免这个问题,可以使用 DocumentFragment 来保存创建的行和单元格,然后在最后一次操作 DOM 时将其添加到 tbody 中。

遇到什么问题了呢?

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^