javascript - 更新 HTML 数据而不在网页上创建更多元素
问题描述
有一个间隔,每 3 秒加载一次 html,但想要刷新它,而不是在已经制作的代码下继续添加更多内容。
async function Products(){
setInterval(async function() {
const response = await fetch('http://localhost:3000/api/products');
const data = await response.json();
const mainContainer = document.getElementById("myData");
for (let obj of data) {
const div = document.createElement("div");
div.innerHTML = `${obj["sku"]}: ${obj["name"]}`;
mainContainer.appendChild(div);
}
}, 10000)
}
当我单击开始按钮时,一切正常,但是我如何让它刷新已经制作的 HTML,而不是在间隔内重复重新创建它。试图找出一个好的方法来解决这个问题。谢谢
解决方案
立即创建并附加 a <div>
,并在间隔内分配给它的innerHTML
:
function Products() {
const container = document.getElementById("myData").appendChild(document.createElement("div"));
setInterval(async function () {
const response = await fetch('http://localhost:3000/api/products');
const data = await response.json();
container.innerHTML = '';
for (let obj of data) {
container.innerHTML += `${obj["sku"]}: ${obj["name"]}`;
}
}, 10000)
}
推荐阅读
- linq - 使用 linq 查找文本字段是否包含列表中的任何字符串
- java - 参数值 [2020-12-08T07:35] 与预期类型不匹配 [java.time.LocalDateTime (n/a)] jpa hibernate
- multithreading - 数据发布时产生大量Kafka Producer Network Thread,Null Pointer Exception Spring Kafka
- javascript - 如何使用 html2canvas 捕获自定义创建的 js 元素而不将它们渲染到实际的 DOM 中?
- installation - 如何在普通用户权限下安装clickhouse
- azure - 有没有一种从 Azure Blob 存储到 Snowflake EDW 的简单 ETL 方法?
- java - 如何实现一种可以收集android应用程序屏幕上显示的信息的方法
- javascript - MediaRecorder 状态在 Anular 应用程序中自动变为“非活动”
- php - Passport Laravel Exception file_put_contents(/secret-keys/oauth\oauth-public.key): 无法打开流
- django - Django如何从两个表中获取数据并在视图中合并GET请求中的数据