| <!DOCTYPE HTML> |
| <html> |
| <title>Basic Insert</title> |
| <script src="../head.js"></script> |
| <script src="../common.js"></script> |
| <script> |
| var RECORDS = 3000; |
| |
| var failed = false; |
| function error(event) { |
| log('Error ' + event.target.errorCode + ': ' |
| + event.target.webkitErrorMessage); |
| |
| if (!failed) |
| testComplete(TEST_FAILED); |
| failed = true; |
| } |
| |
| function start() { |
| if (!setup()) |
| testComplete(SETUP_FAILED); |
| |
| var request = indexedDB.deleteDatabase('idb_basic_insert'); |
| request.onsuccess = onDelete; |
| request.onerror = error; |
| request.onblocked = function(e) { |
| console.log("delete got blocked event"); |
| }; |
| } |
| |
| function onDelete() { |
| request = indexedDB.open('idb_basic_insert'); |
| request.onblocked = function(e) { console.log("open got blocked event"); }; |
| request.onerror = error; |
| request.onupgradeneeded = function(e) { |
| createObjectStores(e.target.result); |
| }; |
| request.onsuccess = function(e) { |
| db = request.result; |
| var curVersion = db.version; |
| if (curVersion !== 1) { |
| // Old reference build that doesn't have upgradeneeded. |
| // TODO(dgrogan): Remove when reference build is version 23 or later. |
| var setVersionRequest = db.setVersion("1"); |
| setVersionRequest.onerror = error; |
| setVersionRequest.onsuccess = function(e) { |
| createObjectStores(db); |
| var versionTransaction = setVersionRequest.result; |
| versionTransaction.onerror = error; |
| versionTransaction.oncomplete = storeCreated; |
| } |
| } else { |
| storeCreated(); |
| } |
| }; |
| } |
| |
| function createObjectStores(db) { |
| db.createObjectStore('store'); |
| } |
| |
| function storeCreated() { |
| var transaction = db.transaction(['store'], 'readwrite'); |
| transaction.oncomplete = insertsDone; |
| transaction.onabort = function(e) { |
| console.log("readwrite transaction aborted"); |
| }; |
| |
| var objectStore = transaction.objectStore('store'); |
| log('Inserting ' + RECORDS + ' records with explicit key.'); |
| startTime = new Date(); |
| for (var i = 0; i < RECORDS; i++) { |
| var x = Math.floor(Math.random() * 1000000); |
| objectStore.put(x, x).onerror = error; |
| } |
| } |
| |
| function insertsDone() { |
| var now = Date.now(); |
| var diff = now - startTime; |
| log('Inserted ' + RECORDS + ' records in ' + diff + ' ms (' + diff / |
| RECORDS + ' ms per record)'); |
| |
| if (!failed) |
| testComplete(now - startTime); |
| } |
| </script> |
| |
| <body onLoad="start()"> |
| </body> |
| </html> |