简体   繁体   English

存储来自 API 的值,然后获取数据以减少请求量

[英]Storing values from API and then getting data to reduce amount of requests

The following code takes data from an API, however I want to store the data and then take values from the stored data if possible.以下代码从 API 获取数据,但是我想存储数据,然后如果可能的话从存储的数据中获取值。 I have no idea how to do this and was hoping someone could at least point me in the right direction.我不知道该怎么做,并希望有人至少能指出我正确的方向。 Any help would be greatly appreciated.任何帮助将不胜感激。

let arrivalUrl = "https://aerodatabox.p.rapidapi.com/flights/airports/icao/egnx/" + YYYY + "-" + MM + "-" + DD + "T" + HH + ":" + Mins + "/" + YYYY + "-" + MM + "-" + DD + "T" + HH2 + ":" + Mins2 + "?rapidapi-key=88ba89e474mshf44d973b69b2a4cp1dacdfjsnac365a6da71e";

function getArrivalInfo() {
    dataObject3 = new XMLHttpRequest();
    dataObject3.addEventListener("readystatechange", function() {
        if (this.readyState === this.DONE) {
            console.log(this.responseText);
        }
    });
    dataObject3.open('GET', arrivalUrl, true);
    dataObject3.send();
    dataObject3.onload = function() {
        ArrivalInfo = JSON.parse(dataObject3.responseText);

        // 1st Arrival.
        document.getElementById('arrivalairport0').innerHTML = ArrivalInfo.arrivals[0].movement.airport.icao;
        document.getElementById('arrivaltime0').innerHTML = ArrivalInfo.arrivals[0].movement.scheduledTimeLocal.substring(11, 16);
        document.getElementById('arrivalcallsign0').innerHTML = ArrivalInfo.arrivals[0].number;
        document.getElementById('arrivalstatus0').innerHTML = ArrivalInfo.arrivals[0].status;
        document.getElementById('arrivalaircraft0').innerHTML = ArrivalInfo.arrivals[0].aircraft.model;
        // 2nd Arrival.
        document.getElementById('arrivalairport1').innerHTML = ArrivalInfo.arrivals[1].movement.airport.icao;
        document.getElementById('arrivaltime1').innerHTML = ArrivalInfo.arrivals[1].movement.scheduledTimeLocal.substring(11, 16);
        document.getElementById('arrivalcallsign1').innerHTML = ArrivalInfo.arrivals[1].number;
        document.getElementById('arrivalstatus1').innerHTML = ArrivalInfo.arrivals[1].status;
        document.getElementById('arrivalaircraft1').innerHTML = ArrivalInfo.arrivals[1].aircraft.model;
        // 3rd Arrival.
        document.getElementById('arrivalairport2').innerHTML = ArrivalInfo.arrivals[2].movement.airport.icao;
        document.getElementById('arrivaltime2').innerHTML = ArrivalInfo.arrivals[2].movement.scheduledTimeLocal.substring(11, 16);
        document.getElementById('arrivalcallsign2').innerHTML = ArrivalInfo.arrivals[2].number;
        document.getElementById('arrivalstatus2').innerHTML = ArrivalInfo.arrivals[2].status;
        document.getElementById('arrivalaircraft2').innerHTML = ArrivalInfo.arrivals[2].aircraft.model;
        // 4th Arrival.
        document.getElementById('arrivalairport3').innerHTML = ArrivalInfo.arrivals[3].movement.airport.icao;
        document.getElementById('arrivaltime3').innerHTML = ArrivalInfo.arrivals[3].movement.scheduledTimeLocal.substring(11, 16);
        document.getElementById('arrivalcallsign3').innerHTML = ArrivalInfo.arrivals[3].number;
        document.getElementById('arrivalstatus3').innerHTML = ArrivalInfo.arrivals[3].status;
        document.getElementById('arrivalaircraft3').innerHTML = ArrivalInfo.arrivals[3].aircraft.model;
        // 5th Arrival.
        document.getElementById('arrivalairport4').innerHTML = ArrivalInfo.arrivals[4].movement.airport.icao;
        document.getElementById('arrivaltime4').innerHTML = ArrivalInfo.arrivals[4].movement.scheduledTimeLocal.substring(11, 16);
        document.getElementById('arrivalcallsign4').innerHTML = ArrivalInfo.arrivals[4].number;
        document.getElementById('arrivalstatus4').innerHTML = ArrivalInfo.arrivals[4].status;
        document.getElementById('arrivalaircraft4').innerHTML = ArrivalInfo.arrivals[4].aircraft.model;
    }
}
getArrivalInfo();

It's unclear what you exactly want to do, but I believe you want to reduce the number of round trips to the server and improve the response time.目前还不清楚您到底想做什么,但我相信您想减少到服务器的往返次数并提高响应时间。

One possible way is to cache the data.一种可能的方法是缓存数据。 Read this article;阅读这篇文章; it can help.它可以提供帮助。 https://medium.com/javascript-dots/cache-api-in-javascript-644380391681 https://medium.com/javascript-dots/cache-api-in-javascript-644380391681

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM