source: other-projects/playing-in-the-street/summer-2013/trunk/Playing-in-the-Street-WPF/Content/Web/mrdoob-three.js-4862f5f/editor/js/Storage.js@ 28897

Last change on this file since 28897 was 28897, checked in by davidb, 10 years ago

GUI front-end to server base plus web page content

File size: 1.6 KB
Line 
1var Storage = function () {
2
3 var indexedDB = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB;
4
5 var name = 'threejs-editor';
6 var version = 1;
7
8 var database;
9
10 return {
11
12 init: function ( callback ) {
13
14 var request = indexedDB.open( name, version );
15 request.onupgradeneeded = function ( event ) {
16
17 var db = event.target.result;
18
19 if ( db.objectStoreNames.contains( 'states' ) === false ) {
20
21 db.createObjectStore( 'states' );
22
23 }
24
25 };
26 request.onsuccess = function ( event ) {
27
28 database = event.target.result;
29
30 callback();
31
32 };
33 request.onerror = function ( event ) {
34
35 console.error( 'IndexedDB', event );
36
37 };
38
39
40 },
41
42 get: function ( callback ) {
43
44 var transaction = database.transaction( [ 'states' ], 'readwrite' );
45 var objectStore = transaction.objectStore( 'states' );
46 var request = objectStore.get( 0 );
47 request.onsuccess = function ( event ) {
48
49 callback( event.target.result );
50
51 };
52
53 },
54
55 set: function ( data, callback ) {
56
57 var transaction = database.transaction( [ 'states' ], 'readwrite' );
58 var objectStore = transaction.objectStore( 'states' );
59 var request = objectStore.put( data, 0 );
60 request.onsuccess = function ( event ) {
61
62 console.log( '[' + /\d\d\:\d\d\:\d\d/.exec( new Date() )[ 0 ] + ']', 'Saved state to IndexedDB.' );
63
64 };
65
66 },
67
68 clear: function ( callback ) {
69
70 var transaction = database.transaction( [ 'states' ], 'readwrite' );
71 var objectStore = transaction.objectStore( 'states' );
72 var request = objectStore.clear();
73 request.onsuccess = function ( event ) {
74
75 callback();
76
77 };
78
79 }
80
81 }
82
83};
Note: See TracBrowser for help on using the repository browser.