Journal Ça sert à rien, c'est inutile : une base de données SQL dans vos onglets de navigateur

Posté par  . Licence CC By‑SA.
Étiquettes :
23
4
juil.
2023

Tabdb est un projet pour les geeks. Une base de données SQL dans votre navigateur, qui stocke les données dans les titres de vos onglets. À quoi ça sert ? à rin. Pourquoi qu'c'est faire ? pour rin. À la grande rigueur on peut s'y entraîner à SQL sans danger.

Pour utiliser Tabdb on ouvre une page HTML avec plein de Javascript (nuance Typescript). Pour commencer, il faut allouer de la mémoire de stockage, c'est-à-dire ouvrir des onglets. Sur Firefox, la longueur maximum du titre est de 100 caractères. Il vous faudra au moins 3 onglets pour stocker les données. Ensuite un petit formulaire vous permet de taper des commandes SQL pour créer vos tables, y entrer vos données puis effectuer des requêtes.

Techniquement, Tabdb s'appuie sur une base SQLite chargée en mémoire vive. Celle-ci est compressée, découpée et répartie dans les titres des onglets.

Voici quelques captures d'écran :

Tabdb au lancement

Au lancement de Tabdb, il faut d'abord allouer de la mémoire, c'est-à-dire ouvrir des onglets dans le navigateur.

Tabdb creation d'une base de données

Avec suffisament de mémoire, on peut créer la structure de notre base de données. Le moteur est SQLite et accepte une grande partie du standard SQL-92 et des propriétés ACID (en théorie, je n'ai pas vérifié ce que l'auteur a fait). S'il n'y a pas assez de mémoire, il faudra rajouter des onglets.

Tabdb création d'une requête

On a rempli la bêêêête de données, il a fallu rajouter encore des onglets pour stocker tout ça, et maintenant on interroge. Et voilà !

La FAQ moitié technique de l’auteur

C’est bien beau mais ça marche comment ?

À chaque requête SQL ça récupère toutes les données enregistrées dans les titres des onglets voisins, ça les agrège, les décompresse et charge le tout en mémoire dans une base SQLite. Ensuite, ça lance la commande, enregistre l’état de la base dans une chaîne de caractères, la compresse et la répartit entre les onglets disponibles.

Ah d’accord… mais pourquoi est-ce une bonne idée ?

Une quoi ?

Ben dans la vraie vie, on en fait quoi ?

Je ne comprends pas la question.

Laisse tomber. Comment peux-tu ouvrir les onglets en tâche de fond ?

Je ne peux pas. Les navigateurs n’aiment pas ça du tout. En fait, j’ouvre un nouvel onglet au premier plan, copie l’interface utilisateur dessus, puis abandonne l’interface utilisateur de l’onglet actuel qui est passé en arrière-plan.

Comment les onglets communiquent-ils ensembles ?

L’onglet « racine » a toujours été ouvert par l’onglet de données le plus récent, donc l’onglet racine peut récupérer la référence de cet onglet avec window.opener. On obtient de même aux données de l’onglet suivant avec window.opener.opener et on obtient ainsi de suite toutes les données.

Je pense avoir trouvé un cas d’usage intéressant pour ton truc

Repenses-y à deux fois, fais un examen de conscience.

NB : Ceux qui ont reconnu l'inspiration de la première ligne en italique, sont priés de lancer un commentaire.

  • # Presque aussi utile que...

    Posté par  . Évalué à 5.

    la bible dans une URL. Je ne retrouve pas le lien, mais c'était un projet d'art contemporain, vu à la Maison Populaire de Montreuil il y a environ 10 ans, qui faisait donc tenir tout le texte de la bible dans une URL. Les raccourcisseurs d'adresse, c'est pour les pleutres !

    Et aussi la ligne à quoi ça sert, bien que je n'ai pas la référence, m'a tout de suite fait penser à ce grand moment de cinéma.

    • [^] # Re: Presque aussi utile que...

      Posté par  . Évalué à 2.

      Pas mal ! Mais ce serait peut-être plus facile de chercher du côté de la réponse. Et c'est pas du cinéma !

  • # Aucun octet n'a été maltraité durant l'écriture de ce post ...

    Posté par  (site web personnel) . Évalué à 7. Dernière modification le 05 juillet 2023 à 10:41.

    À la grande rigueur on peut s'y entraîner à SQL sans danger.

    Bon je me moque, même si ce n'est pas dredi, mais depuis quand SQL est il dangereux ?

    Windows , Bing, La suite office … OK c'est un peu comme les réseaux sociaux et la télé réalité si tu abuses tu peu perdre des points de QI mais SQL …

    Pour infos, et en plus je peu étaler ma science ;) voici quelques commandes de bases

    $ sqlite3 test.db
    SQLite version 3.31.1 2020-01-27 19:55:54
    Enter ".help" for usage hints.
    
    sqlite> create table contacts ( id integer, nom varchar(30), tel varchar(30), dnai date);
    
    sqlite> .schema contacts 
    
    CREATE TABLE contacts ( id integer, nom varchar(30), tel varchar(30), dnai date);
    
    sqlite> insert into contacts values ( 1, "Linus Torvalds", "06.12.34.56.78", "1969-12-28");
    
    sqlite> select * from contacts;
    1|Linus Torvalds|06.12.34.56.78|1969-12-28
    
    delete from contacts where id = 1;
    
    sqlite> .quit
    
    rm test.db

    PS: enfin j'ai compris comment fonctionne les blocs de code :)

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.