mirror of
https://github.com/arthurfiorette/axios-cache-interceptor.git
synced 2025-12-08 17:36:16 +00:00
146 lines
66 KiB
HTML
146 lines
66 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="en-US" dir="ltr">
|
||
<head>
|
||
<meta charset="utf-8">
|
||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||
<title>Invalidating Cache | Axios Cache Interceptor</title>
|
||
|
||
<meta name="generator" content="VitePress v1.6.4">
|
||
<link rel="preload stylesheet" href="/assets/style.DjhVb9s0.css" as="style">
|
||
<link rel="preload stylesheet" href="/vp-icons.css" as="style">
|
||
|
||
<script type="module" src="/assets/app.DeV0lJp_.js"></script>
|
||
<link rel="preload" href="/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
|
||
<link rel="modulepreload" href="/assets/chunks/theme.DpzYL1kV.js">
|
||
<link rel="modulepreload" href="/assets/chunks/framework.CnuuF8_c.js">
|
||
<link rel="modulepreload" href="/assets/guide_invalidating-cache.md.D69gSzWZ.lean.js">
|
||
<link rel="icon" href="/favicon.ico', type: 'image/x-icon">
|
||
<link rel="apple-touch-icon" sizes="57x57" href="/apple-icon-57x57.png">
|
||
<link rel="apple-touch-icon" sizes="60x60" href="/apple-icon-60x60.png">
|
||
<link rel="apple-touch-icon" sizes="72x72" href="/apple-icon-72x72.png">
|
||
<link rel="apple-touch-icon" sizes="76x76" href="/apple-icon-76x76.png">
|
||
<link rel="apple-touch-icon" sizes="114x114" href="/apple-icon-114x114.png">
|
||
<link rel="apple-touch-icon" sizes="120x120" href="/apple-icon-120x120.png">
|
||
<link rel="apple-touch-icon" sizes="144x144" href="/apple-icon-144x144.png">
|
||
<link rel="apple-touch-icon" sizes="152x152" href="/apple-icon-152x152.png">
|
||
<link rel="apple-touch-icon" sizes="180x180" href="/apple-icon-180x180.png">
|
||
<link rel="icon" type="image/png" sizes="192x192" href="/android-icon-192x192.png">
|
||
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
|
||
<link rel="icon" type="image/png" sizes="96x96" href="/favicon-96x96.png">
|
||
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
|
||
<link rel="manifest" href="/manifest.json">
|
||
<meta name="msapplication-TileColor" content="#e5972a">
|
||
<meta name="msapplication-TileImage" content="/ms-icon-144x144.png">
|
||
<meta name="theme-color" content="#e5972a">
|
||
<meta name="description" content="Small and efficient cache interceptor for axios. Etag, Cache-Control, TTL, HTTP headers and more!">
|
||
<meta property="og:url" content="https://axios-cache-interceptor.js.org">
|
||
<meta property="og:type" content="website">
|
||
<meta property="og:title" content="Axios Cache Interceptor">
|
||
<meta property="og:description" content="Small and efficient cache interceptor for axios. Etag, Cache-Control, TTL, HTTP headers and more!">
|
||
<meta property="og:image" content="/preview.png">
|
||
<meta name="twitter:card" content="summary_large_image">
|
||
<meta property="twitter:domain" content="axios-cache-interceptor.js.org">
|
||
<meta property="twitter:url" content="https://axios-cache-interceptor.js.org">
|
||
<meta name="twitter:title" content="Axios Cache Interceptor">
|
||
<meta name="twitter:description" content="Small and efficient cache interceptor for axios. Etag, Cache-Control, TTL, HTTP headers and more!">
|
||
<meta name="twitter:image" content="/preview.png">
|
||
<meta name="google-site-verification" content="u9Nw6WpRrWDhdPTAv-LGIE9aJ0C15t7zkjuaUizDJnA">
|
||
<script defer data-domain="axios-cache-interceptor.js.org" src="https://metrics.arthur.one/js/script.js"></script>
|
||
<script type="application/ld+json">{"@context":"http://www.schema.org","@type":"Organization","name":"Axios Cache Interceptor","url":"https://axios-cache-interceptor.js.org","sameAs":["https://github.com/ArthurFiorette/axios-cache-interceptor"],"datePublished":"2022-01-17","dateModified":"2022-01-17","logo":"https://axios-cache-interceptor.js.org/preview.png","image":"https://axios-cache-interceptor.js.org/preview.png","description":"Axios Cache Interceptor is a small and efficient cache interceptor for axios.","headline":"A small and efficient cache interceptor for axios."}</script>
|
||
<script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
|
||
<script id="check-mac-os">document.documentElement.classList.toggle("mac",/Mac|iPhone|iPod|iPad/i.test(navigator.platform));</script>
|
||
</head>
|
||
<body>
|
||
<div id="app"><div class="Layout" data-v-de37206a><!--[--><!--]--><!--[--><span tabindex="-1" data-v-77a352a9></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-77a352a9>Skip to content</a><!--]--><!----><header class="VPNav" data-v-de37206a data-v-6d80760b><div class="VPNavBar" data-v-6d80760b data-v-dd18e3da><div class="wrapper" data-v-dd18e3da><div class="container" data-v-dd18e3da><div class="title" data-v-dd18e3da><div class="VPNavBarTitle has-sidebar" data-v-dd18e3da data-v-45adfdaa><a class="title" href="/" data-v-45adfdaa><!--[--><!--]--><!--[--><img class="VPImage logo" src="/rocket.svg" alt data-v-8ebc39c0><!--]--><span data-v-45adfdaa>Axios Cache Interceptor</span><!--[--><!--]--></a></div></div><div class="content" data-v-dd18e3da><div class="content-body" data-v-dd18e3da><!--[--><!--]--><div class="VPNavBarSearch search" data-v-dd18e3da><!--[--><!----><div id="docsearch"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><span class="vp-icon DocSearch-Search-Icon"></span><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"><kbd class="DocSearch-Button-Key"></kbd><kbd class="DocSearch-Button-Key">K</kbd></span></button></div><!--]--></div><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-dd18e3da data-v-80fc4413><span id="main-nav-aria-label" class="visually-hidden" data-v-80fc4413> Main Navigation </span><!--[--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/guide" tabindex="0" data-v-80fc4413 data-v-77375007><!--[--><span data-v-77375007>Guide</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/config" tabindex="0" data-v-80fc4413 data-v-77375007><!--[--><span data-v-77375007>Config</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/others/license" tabindex="0" data-v-80fc4413 data-v-77375007><!--[--><span data-v-77375007>Others</span><!--]--></a><!--]--><!--[--><div class="VPFlyout VPNavBarMenuGroup" data-v-80fc4413 data-v-1893426f><button type="button" class="button" aria-haspopup="true" aria-expanded="false" data-v-1893426f><span class="text" data-v-1893426f><!----><span data-v-1893426f>Latest</span><span class="vpi-chevron-down text-icon" data-v-1893426f></span></span></button><div class="menu" data-v-1893426f><div class="VPMenu" data-v-1893426f data-v-423530b0><div class="items" data-v-423530b0><!--[--><!--[--><div class="VPMenuLink" data-v-423530b0 data-v-cae06d8f><a class="VPLink link vp-external-link-icon" href="https://axios-cache-interceptor.js.org/v0/" target="_blank" rel="noreferrer" data-v-cae06d8f><!--[--><span data-v-cae06d8f>v0.x</span><!--]--></a></div><!--]--><!--]--></div><!--[--><!--]--></div></div></div><!--]--><!--]--></nav><!----><div class="VPNavBarAppearance appearance" data-v-dd18e3da data-v-c06afdfa><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="false" data-v-c06afdfa data-v-3b05a2ba data-v-6f4e89fa><span class="check" data-v-6f4e89fa><span class="icon" data-v-6f4e89fa><!--[--><span class="vpi-sun sun" data-v-3b05a2ba></span><span class="vpi-moon moon" data-v-3b05a2ba></span><!--]--></span></span></button></div><div class="VPSocialLinks VPNavBarSocialLinks social-links" data-v-dd18e3da data-v-43977e51 data-v-5af2a0df><!--[--><a class="VPSocialLink no-icon" href="https://axios-cache-interceptor.js.org/discord" aria-label="discord" target="_blank" rel="noopener" data-v-5af2a0df data-v-5297b9ec><span class="vpi-social-discord"></span></a><a class="VPSocialLink no-icon" href="https://github.com/arthurfiorette/axios-cache-interceptor" aria-label="github" target="_blank" rel="noopener" data-v-5af2a0df data-v-5297b9ec><span class="vpi-social-github"></span></a><a class="VPSocialLink no-icon" href="https://npmjs.com/package/axios-cache-interceptor" aria-label target="_blank" rel="noopener" data-v-5af2a0df data-v-5297b9ec><svg xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 24 24"><title>npm</title><path d="M1.763 0C.786 0 0 .786 0 1.763v20.474C0 23.214.786 24 1.763 24h20.474c.977 0 1.763-.786 1.763-1.763V1.763C24 .786 23.214 0 22.237 0zM5.13 5.323l13.837.019-.009 13.836h-3.464l.01-10.382h-3.456L12.04 19.17H5.113z"/></svg></a><a class="VPSocialLink no-icon" href="https://www.jsdelivr.com/package/npm/axios-cache-interceptor" aria-label target="_blank" rel="noopener" data-v-5af2a0df data-v-5297b9ec><svg xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 24 24"><title>jsDelivr</title><path d="M11.851 0L.811 4.02l1.56 14.7L11.85 24l9.6-5.28 1.74-14.76zm.062 4.622a6.668 6.75 0 0 1 2.666.572 12.507 12.507 0 0 0-2.59 1.95c-.045-.02-.092-.031-.138-.045a1.181 1.181 0 0 0-.346-.056c-.071 0-.141.01-.21.021a8.91 8.91 0 0 1-.615-2.318 6.668 6.75 0 0 1 1.171-.122 6.668 6.75 0 0 1 .062-.002zm-1.99.312a9.763 9.763 0 0 0 .69 2.504 1.213 1.213 0 0 0-.328.825 1.202 1.202 0 0 0 .18.63c-.937 1.294-1.656 2.803-1.905 4.31-.01.056-.013.11-.02.166-.282.09-.515.284-.656.54-.987-.333-1.885-.968-2.615-2.022a6.668 6.75 0 0 1-.026-.515 6.668 6.75 0 0 1 4.68-6.438zm5.507.709a6.668 6.75 0 0 1 2.53 2.9c-.377.953-1.049 1.892-1.893 2.727a1.242 1.242 0 0 0-.644-.184 1.243 1.243 0 0 0-.768.27c-.462-.354-.91-.737-1.318-1.168-.333-.35-.637-.73-.921-1.123.19-.215.31-.494.31-.802 0-.212-.061-.41-.159-.586 1.058-1.008 2.112-1.67 2.863-2.034zm-3.925 1.982a.624.624 0 0 1 .346.114.624.624 0 0 1 .292.524.624.624 0 0 1-.292.524.626.626 0 0 1-.346.113.634.634 0 0 1-.638-.637c0-.355.283-.638.638-.638zm-.441 1.771a1.205 1.205 0 0 0 .675.062c.036.05.075.097.112.148a11.438 11.438 0 0 0 .921 1.119 12.103 12.103 0 0 0 1.446 1.277c-.032.11-.054.224-.054.342a1.236 1.236 0 0 0 .066.38 9.91 9.91 0 0 1-2.118 1.042c-.087.029-.173.052-.261.078a7.735 7.735 0 0 1-1.87.332 1.15 1.15 0 0 0-.66-.773c.004-.024.005-.049.01-.073.219-1.333.873-2.73 1.733-3.934zm7.272.19a6.668 6.75 0 0 1 .245 1.786 6.668 6.75 0 0 1-.259 1.856 9.993 9.993 0 0 1-1.666-.63 1.243 1.243 0 0 0-.065-.713 9.434 9.434 0 0 0 1.745-2.3zm-2.913 2.101c.367 0 .657.291.657.658s-.291.657-.657.657c-.367 0-.658-.29-.658-.657s.29-.658.658-.658zm.837 1.59a10.79 10.79 0 0 0 1.802.688 6.668 6.75 0 0 1-6.149 4.157 6.668 6.75 0 0 1-.062-.004 6.668 6.75 0 0 1-.042 0c-.087-.042-.168-.08-.266-.129-.312-.154-.667-.352-.846-.5a3.796 3.796 0 0 1-1.294-2.03c.21-.111.38-.284.487-.495a8.428 8.428 0 0 0 1.96-.306 9.11 9.11 0 0 0 .513-.154 11.083 11.083 0 0 0 2.341-1.13c.205.143.452.23.719.23a1.248 1.248 0 0 0 .837-.328zm-10.707.116a5.761 5.761 0 0 0 2.212 1.298 1.146 1.146 0 0 0 .857.87 4.602 4.602 0 0 0 1.24 2.222 6.668 6.75 0 0 1-4.31-4.39zm3.327.464c.331 0 .595.263.595.596s-.264.595-.595.595a.59.59 0 0 1-.596-.595.591.591 0 0 1 .596-.596z"/></svg></a><!--]--></div><div class="VPFlyout VPNavBarExtra extra" data-v-dd18e3da data-v-96f668d2 data-v-1893426f><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-1893426f><span class="vpi-more-horizontal icon" data-v-1893426f></span></button><div class="menu" data-v-1893426f><div class="VPMenu" data-v-1893426f data-v-423530b0><!----><!--[--><!--[--><!----><div class="group" data-v-96f668d2><div class="item appearance" data-v-96f668d2><p class="label" data-v-96f668d2>Appearance</p><div class="appearance-action" data-v-96f668d2><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="false" data-v-96f668d2 data-v-3b05a2ba data-v-6f4e89fa><span class="check" data-v-6f4e89fa><span class="icon" data-v-6f4e89fa><!--[--><span class="vpi-sun sun" data-v-3b05a2ba></span><span class="vpi-moon moon" data-v-3b05a2ba></span><!--]--></span></span></button></div></div></div><div class="group" data-v-96f668d2><div class="item social-links" data-v-96f668d2><div class="VPSocialLinks social-links-list" data-v-96f668d2 data-v-5af2a0df><!--[--><a class="VPSocialLink no-icon" href="https://axios-cache-interceptor.js.org/discord" aria-label="discord" target="_blank" rel="noopener" data-v-5af2a0df data-v-5297b9ec><span class="vpi-social-discord"></span></a><a class="VPSocialLink no-icon" href="https://github.com/arthurfiorette/axios-cache-interceptor" aria-label="github" target="_blank" rel="noopener" data-v-5af2a0df data-v-5297b9ec><span class="vpi-social-github"></span></a><a class="VPSocialLink no-icon" href="https://npmjs.com/package/axios-cache-interceptor" aria-label target="_blank" rel="noopener" data-v-5af2a0df data-v-5297b9ec><svg xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 24 24"><title>npm</title><path d="M1.763 0C.786 0 0 .786 0 1.763v20.474C0 23.214.786 24 1.763 24h20.474c.977 0 1.763-.786 1.763-1.763V1.763C24 .786 23.214 0 22.237 0zM5.13 5.323l13.837.019-.009 13.836h-3.464l.01-10.382h-3.456L12.04 19.17H5.113z"/></svg></a><a class="VPSocialLink no-icon" href="https://www.jsdelivr.com/package/npm/axios-cache-interceptor" aria-label target="_blank" rel="noopener" data-v-5af2a0df data-v-5297b9ec><svg xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 24 24"><title>jsDelivr</title><path d="M11.851 0L.811 4.02l1.56 14.7L11.85 24l9.6-5.28 1.74-14.76zm.062 4.622a6.668 6.75 0 0 1 2.666.572 12.507 12.507 0 0 0-2.59 1.95c-.045-.02-.092-.031-.138-.045a1.181 1.181 0 0 0-.346-.056c-.071 0-.141.01-.21.021a8.91 8.91 0 0 1-.615-2.318 6.668 6.75 0 0 1 1.171-.122 6.668 6.75 0 0 1 .062-.002zm-1.99.312a9.763 9.763 0 0 0 .69 2.504 1.213 1.213 0 0 0-.328.825 1.202 1.202 0 0 0 .18.63c-.937 1.294-1.656 2.803-1.905 4.31-.01.056-.013.11-.02.166-.282.09-.515.284-.656.54-.987-.333-1.885-.968-2.615-2.022a6.668 6.75 0 0 1-.026-.515 6.668 6.75 0 0 1 4.68-6.438zm5.507.709a6.668 6.75 0 0 1 2.53 2.9c-.377.953-1.049 1.892-1.893 2.727a1.242 1.242 0 0 0-.644-.184 1.243 1.243 0 0 0-.768.27c-.462-.354-.91-.737-1.318-1.168-.333-.35-.637-.73-.921-1.123.19-.215.31-.494.31-.802 0-.212-.061-.41-.159-.586 1.058-1.008 2.112-1.67 2.863-2.034zm-3.925 1.982a.624.624 0 0 1 .346.114.624.624 0 0 1 .292.524.624.624 0 0 1-.292.524.626.626 0 0 1-.346.113.634.634 0 0 1-.638-.637c0-.355.283-.638.638-.638zm-.441 1.771a1.205 1.205 0 0 0 .675.062c.036.05.075.097.112.148a11.438 11.438 0 0 0 .921 1.119 12.103 12.103 0 0 0 1.446 1.277c-.032.11-.054.224-.054.342a1.236 1.236 0 0 0 .066.38 9.91 9.91 0 0 1-2.118 1.042c-.087.029-.173.052-.261.078a7.735 7.735 0 0 1-1.87.332 1.15 1.15 0 0 0-.66-.773c.004-.024.005-.049.01-.073.219-1.333.873-2.73 1.733-3.934zm7.272.19a6.668 6.75 0 0 1 .245 1.786 6.668 6.75 0 0 1-.259 1.856 9.993 9.993 0 0 1-1.666-.63 1.243 1.243 0 0 0-.065-.713 9.434 9.434 0 0 0 1.745-2.3zm-2.913 2.101c.367 0 .657.291.657.658s-.291.657-.657.657c-.367 0-.658-.29-.658-.657s.29-.658.658-.658zm.837 1.59a10.79 10.79 0 0 0 1.802.688 6.668 6.75 0 0 1-6.149 4.157 6.668 6.75 0 0 1-.062-.004 6.668 6.75 0 0 1-.042 0c-.087-.042-.168-.08-.266-.129-.312-.154-.667-.352-.846-.5a3.796 3.796 0 0 1-1.294-2.03c.21-.111.38-.284.487-.495a8.428 8.428 0 0 0 1.96-.306 9.11 9.11 0 0 0 .513-.154 11.083 11.083 0 0 0 2.341-1.13c.205.143.452.23.719.23a1.248 1.248 0 0 0 .837-.328zm-10.707.116a5.761 5.761 0 0 0 2.212 1.298 1.146 1.146 0 0 0 .857.87 4.602 4.602 0 0 0 1.24 2.222 6.668 6.75 0 0 1-4.31-4.39zm3.327.464c.331 0 .595.263.595.596s-.264.595-.595.595a.59.59 0 0 1-.596-.595.591.591 0 0 1 .596-.596z"/></svg></a><!--]--></div></div></div><!--]--><!--]--></div></div></div><!--[--><!--]--><button type="button" class="VPNavBarHamburger hamburger" aria-label="mobile navigation" aria-expanded="false" aria-controls="VPNavScreen" data-v-dd18e3da data-v-364b8629><span class="container" data-v-364b8629><span class="top" data-v-364b8629></span><span class="middle" data-v-364b8629></span><span class="bottom" data-v-364b8629></span></span></button></div></div></div></div><div class="divider" data-v-dd18e3da><div class="divider-line" data-v-dd18e3da></div></div></div><!----></header><div class="VPLocalNav has-sidebar empty" data-v-de37206a data-v-ac3c66b6><div class="container" data-v-ac3c66b6><button class="menu" aria-expanded="false" aria-controls="VPSidebarNav" data-v-ac3c66b6><span class="vpi-align-left menu-icon" data-v-ac3c66b6></span><span class="menu-text" data-v-ac3c66b6>Menu</span></button><div class="VPLocalNavOutlineDropdown" style="--vp-vh:0px;" data-v-ac3c66b6 data-v-39d21923><button data-v-39d21923>Return to top</button><!----></div></div></div><aside class="VPSidebar" data-v-de37206a data-v-2e8ec0d9><div class="curtain" data-v-2e8ec0d9></div><nav class="nav" id="VPSidebarNav" aria-labelledby="sidebar-aria-label" tabindex="-1" data-v-2e8ec0d9><span class="visually-hidden" id="sidebar-aria-label" data-v-2e8ec0d9> Sidebar Navigation </span><!--[--><!--]--><!--[--><div class="no-transition group" data-v-4aa9b711><section class="VPSidebarItem level-0" data-v-4aa9b711 data-v-4e886116><!----><div class="items" data-v-4e886116><!--[--><div class="VPSidebarItem level-1 is-link" data-v-4e886116 data-v-4e886116><div class="item" data-v-4e886116><div class="indicator" data-v-4e886116></div><a class="VPLink link vp-external-link-icon link" href="https://chatgpt.com/?model=gpt-4&hints=search&prompt=You+are+a+JavaScript+expert+assistant.+Read+the+entire+content+from+the+following+URL%3A%0A%0Ahttps%3A%2F%2Faxios-cache-interceptor.js.org%2Fllms-full.txt%0AYou+are+free+to+follow+any+links+in+the+document+to+gather+more+information%2C+if+necessary.%0A%0AThe+document+is+a+comprehensive+guide+to+the+%60axios-cache-interceptor%60+library%2C+which+is+used+for+caching+HTTP+requests+in+Axios.%0A%0A**Your+task+is+to%3A**%0A%0A1.+Understand+the+purpose+and+functionality+of+the+library.%0A2.+Learn+the+key+concepts%2C+configuration+options%2C+and+API+methods+described.%0A3.+Retain+information+about+advanced+features%2C+usage+examples%2C+and+edge+cases.%0A4.+Be+ready+to+answer+technical+questions+or+explain+how+to+use+the+library%2C+troubleshoot+common+issues%2C+and+compare+it+with+other+caching+approaches+in+Axios.%0A%0ADo+not+summarize+yet.+Just+read+and+prepare+to+answer+detailed+questions." target="_blank" rel="noreferrer" data-v-4e886116><!--[--><p class="text" data-v-4e886116>Ask ChatGPT</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-4aa9b711><section class="VPSidebarItem level-0 has-active" data-v-4aa9b711 data-v-4e886116><div class="item" role="button" tabindex="0" data-v-4e886116><div class="indicator" data-v-4e886116></div><h2 class="text" data-v-4e886116>Guide</h2><!----></div><div class="items" data-v-4e886116><!--[--><div class="VPSidebarItem level-1 is-link" data-v-4e886116 data-v-4e886116><div class="item" data-v-4e886116><div class="indicator" data-v-4e886116></div><a class="VPLink link link" href="/guide" data-v-4e886116><!--[--><p class="text" data-v-4e886116>Introduction</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-4e886116 data-v-4e886116><div class="item" data-v-4e886116><div class="indicator" data-v-4e886116></div><a class="VPLink link link" href="/guide/getting-started" data-v-4e886116><!--[--><p class="text" data-v-4e886116>Getting Started</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-4e886116 data-v-4e886116><div class="item" data-v-4e886116><div class="indicator" data-v-4e886116></div><a class="VPLink link link" href="/guide/debugging" data-v-4e886116><!--[--><p class="text" data-v-4e886116>Debugging</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-4e886116 data-v-4e886116><div class="item" data-v-4e886116><div class="indicator" data-v-4e886116></div><a class="VPLink link link" href="/guide/storages" data-v-4e886116><!--[--><p class="text" data-v-4e886116>Storages</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-4e886116 data-v-4e886116><div class="item" data-v-4e886116><div class="indicator" data-v-4e886116></div><a class="VPLink link link" href="/guide/request-id" data-v-4e886116><!--[--><p class="text" data-v-4e886116>Request Id</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-4e886116 data-v-4e886116><div class="item" data-v-4e886116><div class="indicator" data-v-4e886116></div><a class="VPLink link link" href="/guide/invalidating-cache" data-v-4e886116><!--[--><p class="text" data-v-4e886116>Invalidating Cache</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-4e886116 data-v-4e886116><div class="item" data-v-4e886116><div class="indicator" data-v-4e886116></div><a class="VPLink link link" href="/guide/comparison" data-v-4e886116><!--[--><p class="text" data-v-4e886116>Comparison</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-4e886116 data-v-4e886116><div class="item" data-v-4e886116><div class="indicator" data-v-4e886116></div><a class="VPLink link link" href="/guide/interceptors" data-v-4e886116><!--[--><p class="text" data-v-4e886116>Other Interceptors</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-4aa9b711><section class="VPSidebarItem level-0" data-v-4aa9b711 data-v-4e886116><div class="item" role="button" tabindex="0" data-v-4e886116><div class="indicator" data-v-4e886116></div><h2 class="text" data-v-4e886116>Config</h2><!----></div><div class="items" data-v-4e886116><!--[--><div class="VPSidebarItem level-1 is-link" data-v-4e886116 data-v-4e886116><div class="item" data-v-4e886116><div class="indicator" data-v-4e886116></div><a class="VPLink link link" href="/config" data-v-4e886116><!--[--><p class="text" data-v-4e886116>Global Configuration</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-4e886116 data-v-4e886116><div class="item" data-v-4e886116><div class="indicator" data-v-4e886116></div><a class="VPLink link link" href="/config/request-specifics" data-v-4e886116><!--[--><p class="text" data-v-4e886116>Request Specifics</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-4e886116 data-v-4e886116><div class="item" data-v-4e886116><div class="indicator" data-v-4e886116></div><a class="VPLink link link" href="/config/response-object" data-v-4e886116><!--[--><p class="text" data-v-4e886116>Response Object</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-4aa9b711><section class="VPSidebarItem level-0" data-v-4aa9b711 data-v-4e886116><!----><div class="items" data-v-4e886116><!--[--><div class="VPSidebarItem level-1 is-link" data-v-4e886116 data-v-4e886116><div class="item" data-v-4e886116><div class="indicator" data-v-4e886116></div><a class="VPLink link link" href="/others/license" data-v-4e886116><!--[--><p class="text" data-v-4e886116>MIT License</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-4e886116 data-v-4e886116><div class="item" data-v-4e886116><div class="indicator" data-v-4e886116></div><a class="VPLink link link" href="/others/changelog" data-v-4e886116><!--[--><p class="text" data-v-4e886116>Changelog</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-4e886116 data-v-4e886116><div class="item" data-v-4e886116><div class="indicator" data-v-4e886116></div><a class="VPLink link link" href="/llms.txt" data-v-4e886116><!--[--><p class="text" data-v-4e886116>llms.txt</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-4e886116 data-v-4e886116><div class="item" data-v-4e886116><div class="indicator" data-v-4e886116></div><a class="VPLink link link" href="/llms-full.txt" data-v-4e886116><!--[--><p class="text" data-v-4e886116>llms-full.txt</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><!--]--><!--[--><!--]--></nav></aside><div class="VPContent has-sidebar" id="VPContent" data-v-de37206a data-v-6b7662ab><div class="VPDoc has-sidebar has-aside" data-v-6b7662ab data-v-a2dbfda7><!--[--><!--]--><div class="container" data-v-a2dbfda7><div class="aside" data-v-a2dbfda7><div class="aside-curtain" data-v-a2dbfda7></div><div class="aside-container" data-v-a2dbfda7><div class="aside-content" data-v-a2dbfda7><div class="VPDocAside" data-v-a2dbfda7 data-v-12c88fe8><!--[--><!--]--><!--[--><!--]--><nav aria-labelledby="doc-outline-aria-label" class="VPDocAsideOutline" data-v-12c88fe8 data-v-5791035b><div class="content" data-v-5791035b><div class="outline-marker" data-v-5791035b></div><div aria-level="2" class="outline-title" id="doc-outline-aria-label" role="heading" data-v-5791035b>On this page</div><ul class="VPDocOutlineItem root" data-v-5791035b data-v-24355f8a><!--[--><!--]--></ul></div></nav><!--[--><!--]--><div class="spacer" data-v-12c88fe8></div><!--[--><!--]--><div class="VPDocAsideCarbonAds" data-v-12c88fe8><div class="VPCarbonAds" data-v-89a5407e></div></div><!--[--><!--]--><!--[--><!--]--></div></div></div></div><div class="content" data-v-a2dbfda7><div class="content-container" data-v-a2dbfda7><!--[--><!--]--><main class="main" data-v-a2dbfda7><div style="position:relative;" class="vp-doc _guide_invalidating-cache" data-v-a2dbfda7><div><div style="display:none;" hidden="true" aria-hidden="true">Are you an LLM? You can read better optimized documentation at /guide/invalidating-cache.md for this page in Markdown format</div><h1 id="invalidating-cache" tabindex="-1">Invalidating Cache <a class="header-anchor" href="#invalidating-cache" aria-label="Permalink to "Invalidating Cache""></a></h1><p>When using cache-first approaches to improve performance, data inconsistency becomes your major problem. That occurs because <strong>you</strong> can mutate data in the server and <strong>others</strong> also can too. It becomes impossible to really know what the current state of the data is in real time without communicating with the server.</p><div class="warning custom-block"><p class="custom-block-title">WARNING</p><p><strong>All available revalidation methods only work when the request is successful.</strong></p><p>If you are wanting to revalidate with a non standard <code>2XX</code> status code, make sure to enable it at <a href="https://axios-http.com/docs/handling_errors" target="_blank" rel="noreferrer"><code>validateStatus</code></a> or revalidate it manually as shown <a href="#updating-cache-through-external-sources">below</a>.</p></div><p>Take a look at this simple example:</p><ol><li>User lists all available posts, the server returns an empty array.</li><li>User proceeds to create a new post, server returns 200 OK.</li><li>Your frontend navigates to the post list page.</li><li>The post list page still shows 0 posts because it had a recent cache for that request.</li><li>Your client shows 0 posts, but the server actually has 1 post.</li></ol><h2 id="revalidation-after-mutation" tabindex="-1">Revalidation after mutation <a class="header-anchor" href="#revalidation-after-mutation" aria-label="Permalink to "Revalidation after mutation""></a></h2><p>In most cases, you are the one responsible for that inconsistency, like in the above example when the client itself initiated the mutation request. When that happens, you are capable of invalidating the cache for all places you have changed too.</p><p><strong>The <code>cache.update</code> option is available for every request that you make, and it will be the go-to tool for invalidation.</strong></p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>By centralizing your requests into separate methods, you are more likely to keep track of custom IDs you use for each request, thus making it easier to reference and invalidate after.</p></div><h2 id="programmatically" tabindex="-1">Programmatically <a class="header-anchor" href="#programmatically" aria-label="Permalink to "Programmatically""></a></h2><p>If the mutation you made was just simple changes, you can get the mutation response and programmatically update your cache.</p><p>Again considering the first example, we can just do an <code>array.push</code> to the <code>list-posts</code> cache and we are good to go.</p><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes kanagawa-wave kanagawa-lotus vp-code" tabindex="0"><code><span class="line"><span style="--shiki-dark:#727169;--shiki-light:#716E61;">// Uses `list-posts` id to be able to reference it later.</span></span>
|
||
<span class="line"><span style="--shiki-dark:#957FB8;--shiki-light:#624C83;">function</span><span style="--shiki-dark:#7E9CD8;--shiki-light:#4D699B;"> listPosts</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">()</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;"> {</span></span>
|
||
<span class="line"><span style="--shiki-dark:#957FB8;--shiki-dark-font-weight:bold;--shiki-light:#624C83;--shiki-light-font-weight:bold;"> return</span><span style="--shiki-dark:#DCD7BA;--shiki-light:#545464;"> axios</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">.</span><span style="--shiki-dark:#7E9CD8;--shiki-light:#4D699B;">get</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">(</span><span style="--shiki-dark:#98BB6C;--shiki-light:#6F894E;">'/posts'</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">,</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;"> {</span></span>
|
||
<span class="line"><span style="--shiki-dark:#DCD7BA;--shiki-light:#545464;"> id</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">:</span><span style="--shiki-dark:#98BB6C;--shiki-light:#6F894E;"> 'list-posts'</span></span>
|
||
<span class="line"><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;"> });</span></span>
|
||
<span class="line"><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="--shiki-dark:#957FB8;--shiki-light:#624C83;">function</span><span style="--shiki-dark:#7E9CD8;--shiki-light:#4D699B;"> createPost</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">(</span><span style="--shiki-dark:#DCD7BA;--shiki-light:#545464;">data</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">)</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;"> {</span></span>
|
||
<span class="line"><span style="--shiki-dark:#957FB8;--shiki-dark-font-weight:bold;--shiki-light:#624C83;--shiki-light-font-weight:bold;"> return</span><span style="--shiki-dark:#DCD7BA;--shiki-light:#545464;"> axios</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">.</span><span style="--shiki-dark:#7E9CD8;--shiki-light:#4D699B;">post</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">(</span></span>
|
||
<span class="line"><span style="--shiki-dark:#98BB6C;--shiki-light:#6F894E;"> '/posts'</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">,</span></span>
|
||
<span class="line"><span style="--shiki-dark:#DCD7BA;--shiki-light:#545464;"> data</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">,</span></span>
|
||
<span class="line"><span style="--shiki-dark:#727169;--shiki-light:#716E61;"> /* [!code focus:25] */</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;"> {</span></span>
|
||
<span class="line"><span style="--shiki-dark:#DCD7BA;--shiki-light:#545464;"> cache</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">:</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;"> {</span></span>
|
||
<span class="line"><span style="--shiki-dark:#DCD7BA;--shiki-light:#545464;"> update</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">:</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;"> {</span></span>
|
||
<span class="line"><span style="--shiki-dark:#727169;--shiki-light:#716E61;"> // Will perform a cache update for the `list-posts` respective</span></span>
|
||
<span class="line"><span style="--shiki-dark:#727169;--shiki-light:#716E61;"> // cache entry.</span></span>
|
||
<span class="line"><span style="--shiki-dark:#98BB6C;--shiki-light:#6F894E;"> 'list-posts'</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">:</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;"> (</span><span style="--shiki-dark:#DCD7BA;--shiki-light:#545464;">listPostsCache</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">,</span><span style="--shiki-dark:#DCD7BA;--shiki-light:#545464;"> createPostResponse</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">)</span><span style="--shiki-dark:#957FB8;--shiki-light:#624C83;"> =></span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;"> {</span></span>
|
||
<span class="line"><span style="--shiki-dark:#727169;--shiki-light:#716E61;"> // If the cache doesn't have a cached state, we don't need</span></span>
|
||
<span class="line"><span style="--shiki-dark:#727169;--shiki-light:#716E61;"> // to update it</span></span>
|
||
<span class="line"><span style="--shiki-dark:#957FB8;--shiki-dark-font-weight:bold;--shiki-light:#624C83;--shiki-light-font-weight:bold;"> if</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;"> (</span><span style="--shiki-dark:#DCD7BA;--shiki-light:#545464;">listPostsCache</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">.</span><span style="--shiki-dark:#E6C384;--shiki-light:#77713F;">state</span><span style="--shiki-dark:#E6C384;--shiki-light:#77713F;"> !==</span><span style="--shiki-dark:#98BB6C;--shiki-light:#6F894E;"> 'cached'</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">)</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;"> {</span></span>
|
||
<span class="line"><span style="--shiki-dark:#957FB8;--shiki-dark-font-weight:bold;--shiki-light:#624C83;--shiki-light-font-weight:bold;"> return</span><span style="--shiki-dark:#98BB6C;--shiki-light:#6F894E;"> 'ignore'</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">;</span></span>
|
||
<span class="line"><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;"> }</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="--shiki-dark:#727169;--shiki-light:#716E61;"> // Imagine the server response for the `list-posts` request</span></span>
|
||
<span class="line"><span style="--shiki-dark:#727169;--shiki-light:#716E61;"> // is: { posts: Post[]; }, and the `create-post` response</span></span>
|
||
<span class="line"><span style="--shiki-dark:#727169;--shiki-light:#716E61;"> // comes with the newly created post.</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="--shiki-dark:#727169;--shiki-light:#716E61;"> // Adds the created post to the end of the post's list</span></span>
|
||
<span class="line"><span style="--shiki-dark:#DCD7BA;--shiki-light:#545464;"> listPostsCache</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">.</span><span style="--shiki-dark:#DCD7BA;--shiki-light:#545464;">data</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">.</span><span style="--shiki-dark:#DCD7BA;--shiki-light:#545464;">posts</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">.</span><span style="--shiki-dark:#7E9CD8;--shiki-light:#4D699B;">push</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">(</span><span style="--shiki-dark:#DCD7BA;--shiki-light:#545464;">createPostResponse</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">.</span><span style="--shiki-dark:#E6C384;--shiki-light:#77713F;">data</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">);</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="--shiki-dark:#727169;--shiki-light:#716E61;"> // Return the same cache state, but a updated one.</span></span>
|
||
<span class="line"><span style="--shiki-dark:#957FB8;--shiki-dark-font-weight:bold;--shiki-light:#624C83;--shiki-light-font-weight:bold;"> return</span><span style="--shiki-dark:#DCD7BA;--shiki-light:#545464;"> listPostsCache</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">;</span></span>
|
||
<span class="line"><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;"> }</span></span>
|
||
<span class="line"><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;"> }</span></span>
|
||
<span class="line"><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;"> }</span></span>
|
||
<span class="line"><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;"> }</span></span>
|
||
<span class="line"><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;"> );</span></span>
|
||
<span class="line"><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">}</span></span></code></pre></div><p>This will update the <code>list-posts</code> cache at the client side, making it equal to the server. When operations like this are possible to be made, they are the preferred. That’s because we do not contact the server again and update ourselves the cache.</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p><strong>Note to Vue users:</strong> If you modify an array as shown above and then assign the result data of the axios request to a Vue <code>ref</code>, you may have issues with the UI not updating. This is because the cached array is the same object as was returned from the previous request. You need to copy the array before modifying it:</p><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes kanagawa-wave kanagawa-lotus vp-code" tabindex="0"><code><span class="line"><span style="--shiki-dark:#DCD7BA;--shiki-light:#545464;">listPostsCache</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">.</span><span style="--shiki-dark:#DCD7BA;--shiki-light:#545464;">data</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">.</span><span style="--shiki-dark:#E6C384;--shiki-light:#77713F;">posts</span><span style="--shiki-dark:#E6C384;--shiki-light:#77713F;"> =</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;"> [</span><span style="--shiki-dark:#E6C384;--shiki-light:#77713F;">...</span><span style="--shiki-dark:#DCD7BA;--shiki-light:#545464;">listPostsCache</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">.</span><span style="--shiki-dark:#DCD7BA;--shiki-light:#545464;">data</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">.</span><span style="--shiki-dark:#E6C384;--shiki-light:#77713F;">posts</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">];</span></span>
|
||
<span class="line"><span style="--shiki-dark:#DCD7BA;--shiki-light:#545464;">listPostsCache</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">.</span><span style="--shiki-dark:#DCD7BA;--shiki-light:#545464;">data</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">.</span><span style="--shiki-dark:#DCD7BA;--shiki-light:#545464;">posts</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">.</span><span style="--shiki-dark:#7E9CD8;--shiki-light:#4D699B;">push</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">(</span><span style="--shiki-dark:#DCD7BA;--shiki-light:#545464;">createPostResponse</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">.</span><span style="--shiki-dark:#E6C384;--shiki-light:#77713F;">data</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">);</span></span>
|
||
<span class="line"><span style="--shiki-dark:#727169;--shiki-light:#716E61;">// or</span></span>
|
||
<span class="line"><span style="--shiki-dark:#DCD7BA;--shiki-light:#545464;">listPostsCache</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">.</span><span style="--shiki-dark:#DCD7BA;--shiki-light:#545464;">data</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">.</span><span style="--shiki-dark:#E6C384;--shiki-light:#77713F;">posts</span><span style="--shiki-dark:#E6C384;--shiki-light:#77713F;"> =</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;"> [</span><span style="--shiki-dark:#E6C384;--shiki-light:#77713F;">...</span><span style="--shiki-dark:#DCD7BA;--shiki-light:#545464;">listPostsCache</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">.</span><span style="--shiki-dark:#DCD7BA;--shiki-light:#545464;">data</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">.</span><span style="--shiki-dark:#E6C384;--shiki-light:#77713F;">posts</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">,</span><span style="--shiki-dark:#DCD7BA;--shiki-light:#545464;"> createPostResponse</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">.</span><span style="--shiki-dark:#E6C384;--shiki-light:#77713F;">data</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">];</span></span></code></pre></div><p>or before assigning it to the <code>ref</code>:</p><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes kanagawa-wave kanagawa-lotus vp-code" tabindex="0"><code><span class="line"><span style="--shiki-dark:#DCD7BA;--shiki-light:#545464;">myRef</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">.</span><span style="--shiki-dark:#E6C384;--shiki-light:#77713F;">value</span><span style="--shiki-dark:#E6C384;--shiki-light:#77713F;"> =</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;"> [</span><span style="--shiki-dark:#E6C384;--shiki-light:#77713F;">...</span><span style="--shiki-dark:#DCD7BA;--shiki-light:#545464;">axios</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">.</span><span style="--shiki-dark:#7E9CD8;--shiki-light:#4D699B;">get</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">(</span><span style="--shiki-dark:#DCD7BA;--shiki-light:#545464;">url</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">).</span><span style="--shiki-dark:#E6C384;--shiki-light:#77713F;">data</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">];</span></span></code></pre></div></div><h2 id="through-network" tabindex="-1">Through network <a class="header-anchor" href="#through-network" aria-label="Permalink to "Through network""></a></h2><p>Sometimes, the mutation you made is not simple enough and would need a lot of copied service code to replicate all changes the backend made, turning it into a duplication and maintenance nightmare.</p><p>In those cases, you can just invalidate the cache and let the next request be forwarded to the server, and update the cache with the new network response.</p><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes kanagawa-wave kanagawa-lotus has-focused-lines vp-code" tabindex="0"><code><span class="line"><span style="--shiki-dark:#727169;--shiki-light:#716E61;">// Uses `list-posts` id to be able to reference it later.</span></span>
|
||
<span class="line"><span style="--shiki-dark:#957FB8;--shiki-light:#624C83;">function</span><span style="--shiki-dark:#7E9CD8;--shiki-light:#4D699B;"> listPosts</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">()</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;"> {</span></span>
|
||
<span class="line"><span style="--shiki-dark:#957FB8;--shiki-dark-font-weight:bold;--shiki-light:#624C83;--shiki-light-font-weight:bold;"> return</span><span style="--shiki-dark:#DCD7BA;--shiki-light:#545464;"> axios</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">.</span><span style="--shiki-dark:#7E9CD8;--shiki-light:#4D699B;">get</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">(</span><span style="--shiki-dark:#98BB6C;--shiki-light:#6F894E;">'/posts'</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">,</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;"> {</span></span>
|
||
<span class="line has-focus"><span style="--shiki-dark:#DCD7BA;--shiki-light:#545464;"> id</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">:</span><span style="--shiki-dark:#98BB6C;--shiki-light:#6F894E;"> 'list-posts'</span></span>
|
||
<span class="line has-focus"><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;"> });</span></span>
|
||
<span class="line has-focus"><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="--shiki-dark:#957FB8;--shiki-light:#624C83;">function</span><span style="--shiki-dark:#7E9CD8;--shiki-light:#4D699B;"> createPost</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">(</span><span style="--shiki-dark:#DCD7BA;--shiki-light:#545464;">data</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">)</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;"> {</span></span>
|
||
<span class="line"><span style="--shiki-dark:#957FB8;--shiki-dark-font-weight:bold;--shiki-light:#624C83;--shiki-light-font-weight:bold;"> return</span><span style="--shiki-dark:#DCD7BA;--shiki-light:#545464;"> axios</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">.</span><span style="--shiki-dark:#7E9CD8;--shiki-light:#4D699B;">post</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">(</span><span style="--shiki-dark:#98BB6C;--shiki-light:#6F894E;">'/posts'</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">,</span><span style="--shiki-dark:#DCD7BA;--shiki-light:#545464;"> data</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">,</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;"> {</span></span>
|
||
<span class="line has-focus"><span style="--shiki-dark:#DCD7BA;--shiki-light:#545464;"> cache</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">:</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;"> {</span></span>
|
||
<span class="line has-focus"><span style="--shiki-dark:#DCD7BA;--shiki-light:#545464;"> update</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">:</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;"> {</span></span>
|
||
<span class="line has-focus"><span style="--shiki-dark:#727169;--shiki-light:#716E61;"> // Internally calls the storage.remove('list-posts') and lets the</span></span>
|
||
<span class="line has-focus"><span style="--shiki-dark:#727169;--shiki-light:#716E61;"> // next request be forwarded to the server without you having to</span></span>
|
||
<span class="line has-focus"><span style="--shiki-dark:#727169;--shiki-light:#716E61;"> // do any checks.</span></span>
|
||
<span class="line has-focus"><span style="--shiki-dark:#98BB6C;--shiki-light:#6F894E;"> 'list-posts'</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">:</span><span style="--shiki-dark:#98BB6C;--shiki-light:#6F894E;"> 'delete'</span></span>
|
||
<span class="line has-focus"><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;"> }</span></span>
|
||
<span class="line has-focus"><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;"> }</span></span>
|
||
<span class="line has-focus"><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;"> });</span></span>
|
||
<span class="line"><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">}</span></span></code></pre></div><p>Still using the first example, while we are at the step <strong>3</strong>, automatically, the axios cache-interceptor instance will request the server again and do required changes in the cache before the promise resolves and your page gets rendered.</p><h2 id="through-external-sources" tabindex="-1">Through external sources <a class="header-anchor" href="#through-external-sources" aria-label="Permalink to "Through external sources""></a></h2><p>If you have any other type of external communication, like when listening to a websocket for changes, you may want to update your axios cache without be in a request context.</p><p>For that, you can operate the storage manually. It is simple as that:</p><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes kanagawa-wave kanagawa-lotus vp-code" tabindex="0"><code><span class="line"><span style="--shiki-dark:#957FB8;--shiki-dark-font-weight:bold;--shiki-light:#624C83;--shiki-light-font-weight:bold;">if</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;"> (</span><span style="--shiki-dark:#DCD7BA;--shiki-light:#545464;">someLogicThatShowsIfTheCacheShouldBeInvalidated</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">)</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;"> {</span></span>
|
||
<span class="line"><span style="--shiki-dark:#727169;--shiki-light:#716E61;"> // Deletes the current cache for the `list-posts` respective request.</span></span>
|
||
<span class="line"><span style="--shiki-dark:#957FB8;--shiki-dark-font-weight:bold;--shiki-light:#624C83;--shiki-light-font-weight:bold;"> await</span><span style="--shiki-dark:#DCD7BA;--shiki-light:#545464;"> axios</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">.</span><span style="--shiki-dark:#DCD7BA;--shiki-light:#545464;">storage</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">.</span><span style="--shiki-dark:#7E9CD8;--shiki-light:#4D699B;">remove</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">(</span><span style="--shiki-dark:#98BB6C;--shiki-light:#6F894E;">'list-posts'</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">);</span></span>
|
||
<span class="line"><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="--shiki-dark:#957FB8;--shiki-dark-font-weight:bold;--shiki-light:#624C83;--shiki-light-font-weight:bold;">if</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;"> (</span><span style="--shiki-dark:#DCD7BA;--shiki-light:#545464;">someLogicThatShowsIfTheCacheShouldBeInvalidated</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">)</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;"> {</span></span>
|
||
<span class="line"><span style="--shiki-dark:#727169;--shiki-light:#716E61;"> // Deletes all cached data</span></span>
|
||
<span class="line"><span style="--shiki-dark:#957FB8;--shiki-dark-font-weight:bold;--shiki-light:#624C83;--shiki-light-font-weight:bold;"> await</span><span style="--shiki-dark:#DCD7BA;--shiki-light:#545464;"> axios</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">.</span><span style="--shiki-dark:#DCD7BA;--shiki-light:#545464;">storage</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">.</span><span style="--shiki-dark:#7E9CD8;--shiki-light:#4D699B;">clear</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">();</span></span>
|
||
<span class="line"><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">}</span></span></code></pre></div><h2 id="keeping-cache-up-to-date" tabindex="-1">Keeping cache up to date <a class="header-anchor" href="#keeping-cache-up-to-date" aria-label="Permalink to "Keeping cache up to date""></a></h2><p>If you were <strong>not</strong> the one responsible for that change, your client may not be aware that it has changed. E.g. When you are using a chat application, you may not be aware that a new message was sent to you.</p><p>In such cases that we <strong>do not</strong> have a way to know that the cache is outdated, you may have to end up setting a custom time to live (TTL) for specific requests.</p><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes kanagawa-wave kanagawa-lotus vp-code" tabindex="0"><code><span class="line"><span style="--shiki-dark:#727169;--shiki-light:#716E61;">// Uses `list-posts` id to be able to reference it later.</span></span>
|
||
<span class="line"><span style="--shiki-dark:#957FB8;--shiki-light:#624C83;">function</span><span style="--shiki-dark:#7E9CD8;--shiki-light:#4D699B;"> listPosts</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">()</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;"> {</span></span>
|
||
<span class="line"><span style="--shiki-dark:#957FB8;--shiki-dark-font-weight:bold;--shiki-light:#624C83;--shiki-light-font-weight:bold;"> return</span><span style="--shiki-dark:#DCD7BA;--shiki-light:#545464;"> axios</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">.</span><span style="--shiki-dark:#7E9CD8;--shiki-light:#4D699B;">get</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">(</span><span style="--shiki-dark:#98BB6C;--shiki-light:#6F894E;">'/posts'</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">,</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;"> {</span></span>
|
||
<span class="line"><span style="--shiki-dark:#DCD7BA;--shiki-light:#545464;"> id</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">:</span><span style="--shiki-dark:#98BB6C;--shiki-light:#6F894E;"> 'list-posts'</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">,</span></span>
|
||
<span class="line"><span style="--shiki-dark:#DCD7BA;--shiki-light:#545464;"> cache</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">:</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;"> {</span></span>
|
||
<span class="line"><span style="--shiki-dark:#DCD7BA;--shiki-light:#545464;"> ttl</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">:</span><span style="--shiki-dark:#D27E99;--shiki-light:#B35B79;"> 1000</span><span style="--shiki-dark:#E6C384;--shiki-light:#77713F;"> *</span><span style="--shiki-dark:#D27E99;--shiki-light:#B35B79;"> 60</span><span style="--shiki-dark:#727169;--shiki-light:#716E61;"> // 1 minute.</span></span>
|
||
<span class="line"><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;"> }</span></span>
|
||
<span class="line"><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;"> });</span></span>
|
||
<span class="line"><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="--shiki-dark:#957FB8;--shiki-light:#624C83;">function</span><span style="--shiki-dark:#7E9CD8;--shiki-light:#4D699B;"> createPost</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">(</span><span style="--shiki-dark:#DCD7BA;--shiki-light:#545464;">data</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">)</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;"> {</span></span>
|
||
<span class="line"><span style="--shiki-dark:#957FB8;--shiki-dark-font-weight:bold;--shiki-light:#624C83;--shiki-light-font-weight:bold;"> return</span><span style="--shiki-dark:#DCD7BA;--shiki-light:#545464;"> axios</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">.</span><span style="--shiki-dark:#7E9CD8;--shiki-light:#4D699B;">post</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">(</span><span style="--shiki-dark:#98BB6C;--shiki-light:#6F894E;">'/posts'</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">,</span><span style="--shiki-dark:#DCD7BA;--shiki-light:#545464;"> data</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">,</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;"> {</span></span>
|
||
<span class="line"><span style="--shiki-dark:#DCD7BA;--shiki-light:#545464;"> cache</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">:</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;"> {</span></span>
|
||
<span class="line"><span style="--shiki-dark:#DCD7BA;--shiki-light:#545464;"> update</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">:</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;"> {</span></span>
|
||
<span class="line"><span style="--shiki-dark:#727169;--shiki-light:#716E61;"> // I still want to delete the cache when I KNOW things have</span></span>
|
||
<span class="line"><span style="--shiki-dark:#727169;--shiki-light:#716E61;"> // changed, but, by setting a TTL of 1 minute, I ensure that</span></span>
|
||
<span class="line"><span style="--shiki-dark:#727169;--shiki-light:#716E61;"> // 1 minute is the highest time interval that the cache MAY</span></span>
|
||
<span class="line"><span style="--shiki-dark:#727169;--shiki-light:#716E61;"> // get outdated.</span></span>
|
||
<span class="line"><span style="--shiki-dark:#98BB6C;--shiki-light:#6F894E;"> 'list-posts'</span><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">:</span><span style="--shiki-dark:#98BB6C;--shiki-light:#6F894E;"> 'delete'</span></span>
|
||
<span class="line"><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;"> }</span></span>
|
||
<span class="line"><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;"> }</span></span>
|
||
<span class="line"><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;"> });</span></span>
|
||
<span class="line"><span style="--shiki-dark:#9CABCA;--shiki-light:#4E8CA2;">}</span></span></code></pre></div><h2 id="summing-up" tabindex="-1">Summing up <a class="header-anchor" href="#summing-up" aria-label="Permalink to "Summing up""></a></h2><p>When applying any kind of cache to any kind of application, you chose to trade data consistency for performance. And, most of the time that is OK.</p><p><em>The best cache strategy is a combination of all of them. TTL, custom revalidation, stale while revalidate and all the others together are the best solution.</em></p><p>The only real tip here is to you put on a scale the amount of inconsistency you are willing to give up for the performance you are willing to gain. <strong>Sometimes, not caching is the best solution.</strong></p></div></div></main><footer class="VPDocFooter" data-v-a2dbfda7 data-v-03820f5f><!--[--><!--]--><div class="edit-info" data-v-03820f5f><div class="edit-link" data-v-03820f5f><a class="VPLink link vp-external-link-icon no-icon edit-link-button" href="https://github.com/arthurfiorette/axios-cache-interceptor/edit/main/docs/src/guide/invalidating-cache.md" target="_blank" rel="noreferrer" data-v-03820f5f><!--[--><span class="vpi-square-pen edit-link-icon" data-v-03820f5f></span> Edit this page<!--]--></a></div><div class="last-updated" data-v-03820f5f><p class="VPLastUpdated" data-v-03820f5f data-v-7a07e477>Last updated: <time datetime="2025-10-14T14:21:19.000Z" data-v-7a07e477></time></p></div></div><nav class="prev-next" aria-labelledby="doc-footer-aria-label" data-v-03820f5f><span class="visually-hidden" id="doc-footer-aria-label" data-v-03820f5f>Pager</span><div class="pager" data-v-03820f5f><a class="VPLink link pager-link prev" href="/guide/request-id" data-v-03820f5f><!--[--><span class="desc" data-v-03820f5f>Previous page</span><span class="title" data-v-03820f5f>Request Id</span><!--]--></a></div><div class="pager" data-v-03820f5f><a class="VPLink link pager-link next" href="/guide/comparison" data-v-03820f5f><!--[--><span class="desc" data-v-03820f5f>Next page</span><span class="title" data-v-03820f5f>Comparison</span><!--]--></a></div></nav></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><footer class="VPFooter has-sidebar" data-v-de37206a data-v-80957399><div class="container" data-v-80957399><p class="message" data-v-80957399>Made with ❤️</p><p class="copyright" data-v-80957399>Copyright (c) 2021-present Arthur Fiorette & Contributors</p></div></footer><!--[--><!--]--></div></div>
|
||
<script>window.__VP_HASH_MAP__=JSON.parse("{\"config.md\":\"CScI-ExK\",\"config_request-specifics.md\":\"B6wvTu18\",\"config_response-object.md\":\"8qsMplLz\",\"generated_benchmark.md\":\"DZpgBPX8\",\"guide.md\":\"Ch_3Blm4\",\"guide_comparison.md\":\"CJjCfmUB\",\"guide_debugging.md\":\"UDhonkLW\",\"guide_getting-started.md\":\"X7rsi6EE\",\"guide_interceptors.md\":\"B6YE2URo\",\"guide_invalidating-cache.md\":\"D69gSzWZ\",\"guide_request-id.md\":\"BqDUl7YS\",\"guide_storages.md\":\"mDfw43wo\",\"index.md\":\"Cj5fvPtr\",\"others_changelog.md\":\"DFW69MVv\",\"others_license.md\":\"Ceq08JKB\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"Axios Cache Interceptor\",\"description\":\"Small and efficient cache interceptor for axios. Etag, Cache-Control, TTL, HTTP headers and more!\",\"base\":\"/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"logo\":\"/rocket.svg\",\"socialLinks\":[{\"icon\":\"discord\",\"link\":\"https://axios-cache-interceptor.js.org/discord\"},{\"icon\":\"github\",\"link\":\"https://github.com/arthurfiorette/axios-cache-interceptor\"},{\"icon\":{\"svg\":\"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" role=\\\"img\\\" viewBox=\\\"0 0 24 24\\\"><title>npm</title><path d=\\\"M1.763 0C.786 0 0 .786 0 1.763v20.474C0 23.214.786 24 1.763 24h20.474c.977 0 1.763-.786 1.763-1.763V1.763C24 .786 23.214 0 22.237 0zM5.13 5.323l13.837.019-.009 13.836h-3.464l.01-10.382h-3.456L12.04 19.17H5.113z\\\"/></svg>\"},\"link\":\"https://npmjs.com/package/axios-cache-interceptor\"},{\"icon\":{\"svg\":\"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" role=\\\"img\\\" viewBox=\\\"0 0 24 24\\\"><title>jsDelivr</title><path d=\\\"M11.851 0L.811 4.02l1.56 14.7L11.85 24l9.6-5.28 1.74-14.76zm.062 4.622a6.668 6.75 0 0 1 2.666.572 12.507 12.507 0 0 0-2.59 1.95c-.045-.02-.092-.031-.138-.045a1.181 1.181 0 0 0-.346-.056c-.071 0-.141.01-.21.021a8.91 8.91 0 0 1-.615-2.318 6.668 6.75 0 0 1 1.171-.122 6.668 6.75 0 0 1 .062-.002zm-1.99.312a9.763 9.763 0 0 0 .69 2.504 1.213 1.213 0 0 0-.328.825 1.202 1.202 0 0 0 .18.63c-.937 1.294-1.656 2.803-1.905 4.31-.01.056-.013.11-.02.166-.282.09-.515.284-.656.54-.987-.333-1.885-.968-2.615-2.022a6.668 6.75 0 0 1-.026-.515 6.668 6.75 0 0 1 4.68-6.438zm5.507.709a6.668 6.75 0 0 1 2.53 2.9c-.377.953-1.049 1.892-1.893 2.727a1.242 1.242 0 0 0-.644-.184 1.243 1.243 0 0 0-.768.27c-.462-.354-.91-.737-1.318-1.168-.333-.35-.637-.73-.921-1.123.19-.215.31-.494.31-.802 0-.212-.061-.41-.159-.586 1.058-1.008 2.112-1.67 2.863-2.034zm-3.925 1.982a.624.624 0 0 1 .346.114.624.624 0 0 1 .292.524.624.624 0 0 1-.292.524.626.626 0 0 1-.346.113.634.634 0 0 1-.638-.637c0-.355.283-.638.638-.638zm-.441 1.771a1.205 1.205 0 0 0 .675.062c.036.05.075.097.112.148a11.438 11.438 0 0 0 .921 1.119 12.103 12.103 0 0 0 1.446 1.277c-.032.11-.054.224-.054.342a1.236 1.236 0 0 0 .066.38 9.91 9.91 0 0 1-2.118 1.042c-.087.029-.173.052-.261.078a7.735 7.735 0 0 1-1.87.332 1.15 1.15 0 0 0-.66-.773c.004-.024.005-.049.01-.073.219-1.333.873-2.73 1.733-3.934zm7.272.19a6.668 6.75 0 0 1 .245 1.786 6.668 6.75 0 0 1-.259 1.856 9.993 9.993 0 0 1-1.666-.63 1.243 1.243 0 0 0-.065-.713 9.434 9.434 0 0 0 1.745-2.3zm-2.913 2.101c.367 0 .657.291.657.658s-.291.657-.657.657c-.367 0-.658-.29-.658-.657s.29-.658.658-.658zm.837 1.59a10.79 10.79 0 0 0 1.802.688 6.668 6.75 0 0 1-6.149 4.157 6.668 6.75 0 0 1-.062-.004 6.668 6.75 0 0 1-.042 0c-.087-.042-.168-.08-.266-.129-.312-.154-.667-.352-.846-.5a3.796 3.796 0 0 1-1.294-2.03c.21-.111.38-.284.487-.495a8.428 8.428 0 0 0 1.96-.306 9.11 9.11 0 0 0 .513-.154 11.083 11.083 0 0 0 2.341-1.13c.205.143.452.23.719.23a1.248 1.248 0 0 0 .837-.328zm-10.707.116a5.761 5.761 0 0 0 2.212 1.298 1.146 1.146 0 0 0 .857.87 4.602 4.602 0 0 0 1.24 2.222 6.668 6.75 0 0 1-4.31-4.39zm3.327.464c.331 0 .595.263.595.596s-.264.595-.595.595a.59.59 0 0 1-.596-.595.591.591 0 0 1 .596-.596z\\\"/></svg>\"},\"link\":\"https://www.jsdelivr.com/package/npm/axios-cache-interceptor\"}],\"nav\":[{\"text\":\"Guide\",\"link\":\"/guide\"},{\"text\":\"Config\",\"link\":\"/config\"},{\"text\":\"Others\",\"link\":\"/others/license\"},{\"text\":\"Latest\",\"items\":[{\"text\":\"v0.x\",\"link\":\"https://axios-cache-interceptor.js.org/v0/\"}]}],\"editLink\":{\"pattern\":\"https://github.com/arthurfiorette/axios-cache-interceptor/edit/main/docs/src/:path\"},\"footer\":{\"message\":\"Made with ❤️\",\"copyright\":\"Copyright (c) 2021-present Arthur Fiorette & Contributors\"},\"search\":{\"provider\":\"algolia\",\"options\":{\"appId\":\"WPY8IFS0UX\",\"apiKey\":\"8cc9e4ff3f98b5854346224aac791bbf\",\"indexName\":\"axios-cache-interceptor-js\"}},\"carbonAds\":{\"code\":\"CEBDT27Y\",\"placement\":\"vuejsorg\"},\"sidebar\":[{\"text\":\"Ask ChatGPT\",\"link\":\"https://chatgpt.com/?model=gpt-4&hints=search&prompt=You+are+a+JavaScript+expert+assistant.+Read+the+entire+content+from+the+following+URL%3A%0A%0Ahttps%3A%2F%2Faxios-cache-interceptor.js.org%2Fllms-full.txt%0AYou+are+free+to+follow+any+links+in+the+document+to+gather+more+information%2C+if+necessary.%0A%0AThe+document+is+a+comprehensive+guide+to+the+%60axios-cache-interceptor%60+library%2C+which+is+used+for+caching+HTTP+requests+in+Axios.%0A%0A**Your+task+is+to%3A**%0A%0A1.+Understand+the+purpose+and+functionality+of+the+library.%0A2.+Learn+the+key+concepts%2C+configuration+options%2C+and+API+methods+described.%0A3.+Retain+information+about+advanced+features%2C+usage+examples%2C+and+edge+cases.%0A4.+Be+ready+to+answer+technical+questions+or+explain+how+to+use+the+library%2C+troubleshoot+common+issues%2C+and+compare+it+with+other+caching+approaches+in+Axios.%0A%0ADo+not+summarize+yet.+Just+read+and+prepare+to+answer+detailed+questions.\",\"target\":\"_blank\"},{\"text\":\"Guide\",\"items\":[{\"text\":\"Introduction\",\"link\":\"/guide\"},{\"text\":\"Getting Started\",\"link\":\"/guide/getting-started\"},{\"text\":\"Debugging\",\"link\":\"/guide/debugging\"},{\"text\":\"Storages\",\"link\":\"/guide/storages\"},{\"text\":\"Request Id\",\"link\":\"/guide/request-id\"},{\"text\":\"Invalidating Cache\",\"link\":\"/guide/invalidating-cache\"},{\"text\":\"Comparison\",\"link\":\"/guide/comparison\"},{\"text\":\"Other Interceptors\",\"link\":\"/guide/interceptors\"}]},{\"text\":\"Config\",\"items\":[{\"text\":\"Global Configuration\",\"link\":\"/config\"},{\"text\":\"Request Specifics\",\"link\":\"/config/request-specifics\"},{\"text\":\"Response Object\",\"link\":\"/config/response-object\"}]},{\"text\":\"MIT License\",\"link\":\"/others/license\"},{\"text\":\"Changelog\",\"link\":\"/others/changelog\"},{\"text\":\"llms.txt\",\"link\":\"/llms.txt\"},{\"text\":\"llms-full.txt\",\"link\":\"/llms-full.txt\"}]},\"locales\":{},\"scrollOffset\":134,\"cleanUrls\":true}");</script>
|
||
|
||
</body>
|
||
</html> |