1 | <!doctype html>
|
2 | <html>
|
3 | <head>
|
4 | <meta charset="utf8" />
|
5 | <title>Simple localForage example</title>
|
6 | </head>
|
7 | <body>
|
8 | <script src="../dist/localforage.js"></script>
|
9 | <script>
|
10 |
|
11 | localforage.setDriver(localforage.WEBSQL).then(function() {
|
12 | return localforage.ready();
|
13 | }).then(() => {
|
14 | console.log('ready: ' + localforage.driver());
|
15 | }).then(() => {
|
16 | var overall = Promise.resolve();
|
17 | for (let i = 0; i < 1; i++) {
|
18 | overall = overall.then(() => {
|
19 | return wait(2000).then(() => (+new Date()) / 1000 | 0);
|
20 | }).then((timestamp) => {
|
21 | var data = new Uint32Array(2*1024*1024);
|
22 | data[0] = timestamp;
|
23 | return localforage.setItem(`bigdata${i}`, data).then(
|
24 | data => console.log(`setItem${i} resolved`, data[0]),
|
25 | e => {
|
26 | console.log(`setItem${i} rejected`, e);
|
27 | return Promise.reject(e);
|
28 | }).then(() => {
|
29 | return localforage.getItem(`bigdata${i}`);
|
30 | }).then(
|
31 | data => {
|
32 | if (data && data[0] === timestamp) {
|
33 | console.log(`getItem${i} data matches`, data[0]);
|
34 | } else {
|
35 | console.log(`getItem${i} data missmatch`, timestamp, data[0]);
|
36 | }
|
37 | },
|
38 | e => {
|
39 | console.log('rejected', e);
|
40 | return Promise.reject(e);
|
41 | });
|
42 | });
|
43 | }
|
44 | return overall;
|
45 | }).then(
|
46 | () => console.log('all done'),
|
47 | e => console.log('Error', e));
|
48 |
|
49 | function wait(ms) {
|
50 | return new Promise(function(resolve) {
|
51 | resolve();
|
52 | });
|
53 | }
|
54 | </script>
|
55 | </body>
|
56 | </html>
|