web-dev-qa-db-fra.com

Sqlite in chrome

Est-il possible de créer une extension chrome qui interagit avec la base de données sqlite de la même manière qu'une extension firefox? Pourriez-vous me donner un conseil ou un lien où trouver plus d’informations sur le développement de chrome extensions en interaction avec sqlite?

je vous remercie

60
xralf

Vous pouvez utiliser Web SQL API qui est une base de données SQLite ordinaire dans votre navigateur et vous pouvez l'ouvrir/le modifier comme n'importe quelle autre base de données SQLite, par exemple avec Lita .

Chrome localise automatiquement les bases de données en fonction des noms de domaine ou des identifiants d'extension. Il y a quelques mois, j'ai posté sur mon blog un court article sur comment supprimer la base de données de Chrome car lorsque vous testez certaines fonctionnalités, elles sont très utiles.

25
martin

Vous pourrez peut-être utiliser sql.js .

sql.js est un portage de SQLite en JavaScript, en compilant le code SQLite C avec Emscripten. pas de liaisons C ou de compilation node-gyp ici.

<script src='js/sql.js'></script>
<script>
    //Create the database
    var db = new SQL.Database();
    // Run a query without reading the results
    db.run("CREATE TABLE test (col1, col2);");
    // Insert two rows: (1,111) and (2,222)
    db.run("INSERT INTO test VALUES (?,?), (?,?)", [1,111,2,222]);

    // Prepare a statement
    var stmt = db.prepare("SELECT * FROM test WHERE col1 BETWEEN $start AND $end");
    stmt.getAsObject({$start:1, $end:1}); // {col1:1, col2:111}

    // Bind new values
    stmt.bind({$start:1, $end:2});
    while(stmt.step()) { //
        var row = stmt.getAsObject();
        // [...] do something with the row of result
    }
</script>

sql.js est un fichier JavaScript unique d’une taille d’environ 1,5 Mo. Bien que cela puisse être un problème dans une page Web, la taille est probablement acceptable pour une extension.

21
sampathsris

Chrome prend en charge WebDatabase API (alimenté par sqlite), mais semble indiquer que le W3C a arrêté son développement .

13
serg

Je ne sais pas trop si vous voulez dire "puis-je utiliser sqlite (websql) en chrome" ou "puis-je utiliser sqlite (websql) dans firefox", alors je vais répondre aux deux:

Notez que WebSQL n'est pas un canal à accès complet dans une base de données .sqlite. C'est WebSQL. Vous ne pourrez pas exécuter certaines requêtes spécifiques comme VACUUM

C'est génial pour créer/lire/mettre à jour/supprimer bien. J'ai créé une petite bibliothèque qui aide à résoudre tous les problèmes énormes tels que la création de tables et d'interrogation, et fournit un petit modèle ORM/ActiveRecord avec des relations et tout, ainsi qu'une énorme pile d'exemples qui devraient vous permettre de démarrer rapidement, vous pouvez vérifier cela ici

Sachez également que si vous souhaitez créer une extension FireFox: le format de leur extension est sur le point de changer. Assurez-vous de vouloir investir le temps deux fois.

Bien que la spécification WebSQL soit obsolète depuis des années, même en 2017, il ne semble toujours pas qu'elle sera supprimée de Chrome pour le moment prévisible. Ils suivent les statistiques d'utilisation et il existe toujours un grand nombre d'extensions et de sites Web chrome et dans le monde réel mettant en œuvre la spécification .

8
SchizoDuckie