【发布时间】:2023-02-26 11:31:18
【问题描述】:
我需要气象站网站上的 JS 来获取每个传感器的值(总共 4 次),然后更新相应的 HTML 元素。
在服务器端,URL /reading?name=...&r=... 返回传感器“名称”的读数“r”(例如温度)。
我现在拥有的是:
function updateReadings() {
secondsSinceLastUpdate = secondsSinceLastUpdate++;
fetch('reading?name=bme280&r=1')
.then( response => response.json() )
.then( response => {
//console.log(response);
document.getElementById("bme280-1-rt1").innerHTML = response;
secondsSinceLastUpdate = 0;
} );
fetch('reading?name=bme280&r=2')
.then( response => response.json() )
.then( response => {
//console.log(response);
document.getElementById("bme280-1-rt2").innerHTML = response;
secondsSinceLastUpdate = 0;
} );
fetch('reading?name=bme280&r=3')
.then( response => response.json() )
.then( response => {
//console.log(response);
document.getElementById("bme280-1-rt3").innerHTML = response;
secondsSinceLastUpdate = 0;
} );
fetch('reading?name=ds18b20-1&r=1')
.then( response => response.json() )
.then( response => {
//console.log(response);
document.getElementById('ds18b20-1-rt1').innerHTML = response;
secondsSinceLastUpdate = 0;
} );
}
setInterval(updateReading, 1000); // to update the readings every second
我想以某种方式将所有这些提取放入一个结构中(例如 for() 循环?),这样我就不必为每次修改重写代码四次。我不确定将它推入 for() 循环是否是个好主意,但这是我想到的第一个解决方案。
我不想在服务器端更改任何内容:它必须为每个读数提供单独的 URL(我不能同时为所有读数使用一个 fetch())。
【问题讨论】:
标签: javascript fetch-api