# Stale-while-revalidate — Progressive Web Apps

Source: https://www.geekswithgeeks.com/hi/pwa/pwa-stale-while-revalidate

> Stale-while-revalidate को implement करें: cached content को immediately serve करें, asynchronously update करें।

## दोनों की Best

**Stale-while-revalidate** speed के लिए cached content को immediately serve करता है, फिर background में cache को update करता है। Users को instant feedback मिलता है जबकि fresh data को asynchronously fetch किया जाता है।

## Stale-while-revalidate Implementation

Cache से immediately serve करें, background में fresh data fetch करें, cache को update करें।

```javascript
self.addEventListener('fetch', event => {
  event.respondWith(
    caches.open('v1').then(cache => 
      cache.match(event.request).then(response => {
        const fetchPromise = fetch(event.request).then(networkResponse => {
          cache.put(event.request, networkResponse.clone());
          return networkResponse;
        });
        return response || fetchPromise;
      })
    )
  );
});
```

Output:

```
Cached content served instantly; fresh version fetched and cached in background.
```

त्वरित जाँच

**Quiz:** Stale-while-revalidate का मुख्य लाभ क्या है?

- [x] Users को instant response देना जबकि background में fresh data update हो
- [ ] हमेशा newest content को serve करना
- [ ] Server load को completely reduce करना

*Answer:* Users को instant response देना जबकि background में fresh data update हो. यह strategy speed (instant cache) और freshness (background fetch) को balance करता है।
