JavaScript Ouvrir une base de données


Exemple

Ouvrir une base de données est une opération asynchrone. Nous devons envoyer une demande pour ouvrir notre base de données, puis écouter les événements pour savoir quand elle est prête.

Nous allons ouvrir une base de données DemoDB. S'il n'existe pas encore, il sera créé lors de l'envoi de la demande.

Le 2 ci-dessous indique que nous demandons la version 2 de notre base de données. Une seule version existe à tout moment, mais nous pouvons utiliser le numéro de version pour mettre à niveau les anciennes données, comme vous le verrez.

var db = null, // We'll use this once we have our database
    request = window.indexedDB.open("DemoDB", 2);

// Listen for success. This will be called after onupgradeneeded runs, if it does at all
request.onsuccess = function() {
    db = request.result; // We have a database!

    doThingsWithDB(db);
};

// If our database didn't exist before, or it was an older version than what we requested,
// the `onupgradeneeded` event will be fired.
// 
// We can use this to setup a new database and upgrade an old one with new data stores
request.onupgradeneeded = function(event) {
    db = request.result;

    // If the oldVersion is less than 1, then the database didn't exist. Let's set it up
    if (event.oldVersion < 1) {
        // We'll create a new "things" store with `autoIncrement`ing keys
        var store = db.createObjectStore("things", { autoIncrement: true });
    }

    // In version 2 of our database, we added a new index by the name of each thing
    if (event.oldVersion < 2) {
        // Let's load the things store and create an index
        var store = request.transaction.objectStore("things");

        store.createIndex("by_name", "name");
    }
};

// Handle any errors
request.onerror = function() {
    console.error("Something went wrong when we tried to request the database!");
};