# IndexedDB & Storage — Progressive Web Apps

Source: https://www.geekswithgeeks.com/hi/pwa/pwa-indexeddb-storage

> IndexedDB और Cache API का उपयोग करके locally large amounts of data को store करें।

## Local Storage Options

**IndexedDB** objects/indexes में structured data store करता है। **Cache API** responses के लिए optimized है। App data के लिए IndexedDB choose करें, HTTP responses और static assets के लिए Cache API।

## IndexedDB से store और retrieve करें

Todos, notes या user preferences जैसे app data को store करने के लिए IndexedDB का उपयोग करें।

```javascript
const dbRequest = indexedDB.open('AppDB', 1);
dbRequest.onsuccess = () => {
  const db = dbRequest.result;
  const store = db.transaction('todos', 'readwrite').objectStore('todos');
  store.add({ id: 1, title: 'Learn PWA', completed: false });
};

dbRequest.onupgradeneeded = event => {
  const db = event.target.result;
  db.createObjectStore('todos', { keyPath: 'id' });
};
```

Output:

```
App data persisted in IndexedDB for offline access.
```

## एक आम गलती

IndexedDB transactions complex हो सकते हैं। हमेशा onsuccess और onerror events को handle करें और याद रखें कि storage quotas browser के अनुसार अलग-अलग होते हैं।

## Database Design for Offline Apps

Offline data management के लिए efficient schema design patterns।
