获取 API css-loader
Fetch API css-loader
我正在使用 fetch API 访问 JSON 对象。
我的问题是如何在显示实际数据之前实现 css 加载程序。还有我怎么知道数据已经显示了。
这是我试过的:
var startSevenDaysInterval = (new Date).getTime();
var endSevenDaysInterval = startSevenDaysInterval - 604800000;
function fetchData2() {
fetch('https://vannovervakning.com/api/v1/measurements/3/' + endSevenDaysInterval + '/' + startSevenDaysInterval + '/')
.then(function (response) {
if(response === 404){
document.getElementById("loader").style.display = 'none';
}
return response.json();
})
.then(function (data) {
document.getElementById("loader").style.display = 'none';
printTemperature(data);
});
}
function printTemperature(data) {
var html = "<h5>";
html += data.data["TEMPERATURE"][0].value;
html += "</h5>";
document.getElementById('temp1').innerHTML = html;
}
setInterval(function () {
fetchData2();
}, 1000);
我的加载程序如下所示:
.loader {
border: 4px solid #f3f3f3; /* Light grey */
border-top: 4px solid #e0e0e0;
border-radius: 30px;
width: 30px;
height: 30px;
animation: spin 1s linear infinite;
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
我的 HTML 看起来像这样:
<div class="tempVal">
<div class="loader"></div>
<div id="temp1"></div>
</div>
您已经这样做了,但是使用 getElementById
作为 class(仅用于 ID)。当您不确定这些事情时,请确保您确实获得了您想要的元素,例如使用 debugger
语句或 console.log(document.getElementById("loader"))
.
获取 class 和 querySelector
可以处理所有 css 选择器:
document.querySelector('.loader').style.display = 'none'
请注意,如果您有多个 class 具有该名称的名称,它将获得第一个。您不需要在两个 .then
中重复它。
我正在使用 fetch API 访问 JSON 对象。
我的问题是如何在显示实际数据之前实现 css 加载程序。还有我怎么知道数据已经显示了。
这是我试过的:
var startSevenDaysInterval = (new Date).getTime();
var endSevenDaysInterval = startSevenDaysInterval - 604800000;
function fetchData2() {
fetch('https://vannovervakning.com/api/v1/measurements/3/' + endSevenDaysInterval + '/' + startSevenDaysInterval + '/')
.then(function (response) {
if(response === 404){
document.getElementById("loader").style.display = 'none';
}
return response.json();
})
.then(function (data) {
document.getElementById("loader").style.display = 'none';
printTemperature(data);
});
}
function printTemperature(data) {
var html = "<h5>";
html += data.data["TEMPERATURE"][0].value;
html += "</h5>";
document.getElementById('temp1').innerHTML = html;
}
setInterval(function () {
fetchData2();
}, 1000);
我的加载程序如下所示:
.loader {
border: 4px solid #f3f3f3; /* Light grey */
border-top: 4px solid #e0e0e0;
border-radius: 30px;
width: 30px;
height: 30px;
animation: spin 1s linear infinite;
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
我的 HTML 看起来像这样:
<div class="tempVal">
<div class="loader"></div>
<div id="temp1"></div>
</div>
您已经这样做了,但是使用 getElementById
作为 class(仅用于 ID)。当您不确定这些事情时,请确保您确实获得了您想要的元素,例如使用 debugger
语句或 console.log(document.getElementById("loader"))
.
获取 class 和 querySelector
可以处理所有 css 选择器:
document.querySelector('.loader').style.display = 'none'
请注意,如果您有多个 class 具有该名称的名称,它将获得第一个。您不需要在两个 .then
中重复它。