Use Web Worker to access the server and save data in IndexedDB to use offline.