JavaScript의 Cache API - 단 20줄의 코드만 있으면 됩니다.

let cache = {};
async function getData(url){
    let result = "";
    if(cache[url] !== undefined) return cache[url].value;

    await fetch(url)
    .then(response => response.json())
    .then(json => cache[url] = {time: new Date(), value: json});

    return cache[url].value;
}

// Interval to clear cache;
setInterval(function (){
    if(Object.keys(cache).length > 0){
        let currentTime = new Date();
        Object.keys(cache).forEach(key => {
            let seconds = currentTime - cache[key].time;

            if(seconds > 10000){
                delete cache[key];
                console.log(`${key}'s cache deleted`)
            }
        })
    }
}, 3000);


이제 API를 이렇게 호출할 수 있습니다.

getData("https://jsonplaceholder.typicode.com/todos/1")
.then(data => console.log(data));


If there is a cache value of the current api call then it will return values from cache otherwise call the api and return data while adding the response to cache.




시사



나는 이것이 RTK Query와 React Query 😅보다 훨씬 낫다고 가정하고 있습니다.

좋은 웹페이지 즐겨찾기