From a6854b3cb133f61c918831bff37955ee2347ddd2 Mon Sep 17 00:00:00 2001 From: pikotea Date: Wed, 13 Feb 2013 01:15:17 +0900 Subject: [PATCH 1/2] Replace setVersion with upgradeneeded --- samples/js/tutorials/indexeddb_todo_list.js | 51 ++++++++++----------- 1 file changed, 23 insertions(+), 28 deletions(-) diff --git a/samples/js/tutorials/indexeddb_todo_list.js b/samples/js/tutorials/indexeddb_todo_list.js index 60d5f30..48bfd8c 100644 --- a/samples/js/tutorials/indexeddb_todo_list.js +++ b/samples/js/tutorials/indexeddb_todo_list.js @@ -1,6 +1,6 @@ var html5rocks = {}; window.indexedDB = window.indexedDB || window.webkitIndexedDB || - window.mozIndexedDB; + window.mozIndexedDB; if ('webkitIndexedDB' in window) { window.IDBTransaction = window.webkitIDBTransaction; @@ -15,35 +15,29 @@ html5rocks.indexedDB.onerror = function(e) { }; html5rocks.indexedDB.open = function() { - var request = indexedDB.open("todos"); + var version = 1; + var request = indexedDB.open("todos", version); + + // We can only create Object stores in a versionchange transaction. + request.onupgradeneeded = function(e) { + var db = e.target.result; + + // A versionchange transaction is started automatically. + e.target.transaction.onerror = html5rocks.indexedDB.onerror; + + if(db.objectStoreNames.contains("todo")) { + db.deleteObjectStore("todo"); + } + + var store = db.createObjectStore("todo", + {keyPath: "timeStamp"}); + }; request.onsuccess = function(e) { - var v = 1; html5rocks.indexedDB.db = e.target.result; - var db = html5rocks.indexedDB.db; - // We can only create Object stores in a setVersion transaction; - if (v != db.version) { - var setVrequest = db.setVersion(v); - - // onsuccess is the only place we can create Object Stores - setVrequest.onerror = html5rocks.indexedDB.onerror; - setVrequest.onsuccess = function(e) { - if(db.objectStoreNames.contains("todo")) { - db.deleteObjectStore("todo"); - } - - var store = db.createObjectStore("todo", - {keyPath: "timeStamp"}); - e.target.transaction.oncomplete = function() { - html5rocks.indexedDB.getAllTodoItems(); - }; - }; - } else { - request.transaction.oncomplete = function() { - html5rocks.indexedDB.getAllTodoItems(); - }; - } + html5rocks.indexedDB.getAllTodoItems(); }; + request.onerror = html5rocks.indexedDB.onerror; }; @@ -93,7 +87,8 @@ html5rocks.indexedDB.getAllTodoItems = function() { var store = trans.objectStore("todo"); // Get everything in the store; - var cursorRequest = store.openCursor(); + var keyRange = IDBKeyRange.lowerBound(0); + var cursorRequest = store.openCursor(keyRange); cursorRequest.onsuccess = function(e) { var result = e.target.result; @@ -120,7 +115,7 @@ function renderTodo(row) { a.textContent = " [Delete]"; li.appendChild(t); li.appendChild(a); - todos.appendChild(li); + todos.appendChild(li) } function addTodo() { From c39d607079d5b78692b7558008d15cdf8aee15c2 Mon Sep 17 00:00:00 2001 From: pikotea Date: Wed, 13 Feb 2013 15:07:55 +0900 Subject: [PATCH 2/2] Fixed typo --- samples/js/tutorials/indexeddb_todo_list.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/js/tutorials/indexeddb_todo_list.js b/samples/js/tutorials/indexeddb_todo_list.js index 48bfd8c..0d1bc36 100644 --- a/samples/js/tutorials/indexeddb_todo_list.js +++ b/samples/js/tutorials/indexeddb_todo_list.js @@ -115,7 +115,7 @@ function renderTodo(row) { a.textContent = " [Delete]"; li.appendChild(t); li.appendChild(a); - todos.appendChild(li) + todos.appendChild(li); } function addTodo() {