HTML and CSS Reference
In-Depth Information
if (!dbEng)
alert("IndexedDB is not supported on this browser");
else {
var request = dbEng.open("Chess", 1);
request.onsuccess = function (event) {
db = event.target.result;
}
request.onerror = function (event) {
alert("Please allow the browser to open the database");
}
request.onupgradeneeded = function (event) {
configureDatabase(event);
}
}
Because the specification has not been finalized, the browsers will be using the vendor prefix. If you can't
access the indexedDB object then the browser does not support it. For this demo you can simply use alert() to
notify the user and stop further processing.
This code then uses the indexedDB object to open the Chess database, specifying that version 1 should be
used. The open() method returns a DBRequest object, as I describer earlier. You will attach three event handlers
for this request:
onsuccess - This event handler simply saves the reference to the database. You will add
more logic here later. Notice that the database is obtained from the event.target.result
property, which is how all results are returned.
onerror - The primary reason that the browser fails to open a database is that the browser
has the IndexedDB feature blocked. This can be disabled for security reasons. In this case,
the user is prompted to allow access.
onupgradeneeded - This is raised if the database does not exist or if the specified version
is not the current version. This calls the configureDatabase() function, which you'll
implement now.
Defining the Database Structure
Add the code shown in Listing 11-5 to implement the configureDatabase() function.
Listing 11-5. Defining the database structure
function configureDatabase(e) {
alert("Configuring database - current version is "+ e.oldVersion +
", requested version is "+ e.newVersion); db = e.currentTarget.result;
// Remove all existing data stores
var storeList = db.objectStoreNames;
for (var i = 0; i < storeList.length; i++) {
db.deleteObjectStore(storeList[i]);
}
 
Search WWH ::




Custom Search