- From: Jonas Sicking <jonas@sicking.cc>
- Date: Tue, 21 Jun 2011 20:19:26 -0700
- To: Ian Hickson <ian@hixie.ch>
- Cc: public-webapps@w3.org
On Tue, Jun 21, 2011 at 2:52 PM, Ian Hickson <ian@hixie.ch> wrote:
>
> Could one of the IndexDB people help me convert this example to use the
> IndexDB stuff instead of the WebSQL stuff?
>
> http://www.whatwg.org/demos/workers/database-updater/worker.js
Assuming the 'key' is intended to be a unique identifier into the
pairs table, something like this:
var database;
indexeddb.open('demobase').onsuccess = function(e) {
database = e.result;
var server = new WebSocket('ws://whatwg.org/database');
server.onmessage = websocketHandler;
}
function websocketHandler(event) {
// data is in the format "command key value"
var data = event.data.split(' ');
switch (data[0]) {
case '+':
database.transaction(["pairs"], IDBTransaction.READ_WRITE)
.objectStore("pairs").put(data[2], data[1]);
case '-':
database.transaction(["pairs"], IDBTransaction.READ_WRITE)
.objectStore("pairs").delete(data[1]);
}
};
A couple of things to note: Opening a database is an asynchronous
operation since it makes metadata about the database available. All
tables must have a unique key for each row. In this example I assumed
that the 'key' part was that unique identifier.
/ Jonas
Received on Wednesday, 22 June 2011 03:20:24 UTC