Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Import and Export Indexeddb data

Tags:

indexeddb

I have an Epub annotation plugin where user can annotate the Epub, but the annotated text is stored in the browser in browser's indexeddb database, want to export those annotated text to an file and in other system i want to import those file to my indexeddb database.

How can I do this , can any one suggest any idea along with some URLS , examples, code.

like image 646
Mob_App_Dev Avatar asked Oct 03 '22 11:10

Mob_App_Dev


1 Answers

You can get anything out of an IndexedDB database as a JavaScript object. Then you can use JSON.stringify to turn it into a JSON string. Then you can turn that into a downloadable file by using data URIs. I did something like this in one of my projects; you can see the git diff here.

For import, you can just accept a JSON file, parse it, and add it to the database.

You probably won't have this problem with your application, but I'm just writing it here for completeness... Data URIs only perform reasonably when the amount of data is small (< 1 MB roughly, although it's browser dependent). Downloadify performs better with large amounts of data, but I still ran into trouble with more than ~5MB of data. I'm still not sure what a good solution would be for larger files than that.

like image 97
dumbmatter Avatar answered Oct 10 '22 03:10

dumbmatter