Question

En utilisant IndexedDB lors de la première exécution de mon application, je la remplis avec des données. Je veux m'assurer que lorsque la base de données et les tables sont créées, elles n'existent pas déjà.

Puis-je interroger la longueur d’une table pour voir si elle contient des données en JavaScript ?

Était-ce utile?

La solution

Le meilleur moyen est d'essayer d'ouvrir ObjectStore en essayez de capter bloc.Il est synchrone aussi.En cas d'erreur, vous pouvez créer un magasin par exemple:

var store;
  try {
    store = request.transaction.objectStore('yourStore');
  }
  catch(e) {
    store = db.createObjectStore('yourStore');
}

Autres conseils

Vous pouvez utiliser objetStore.count () fonction,Mais je recommande de stocker une sorte de méta-données qui diraient que votre DB locale est initialisé.Sinon, vous pouvez avoir la recharge de page au milieu de la création de données et ne jamais avoir vos données entièrement synchronisées avec des données distantes.

La base de données est créée si une base de données portant le nom spécifié n'existe pas, sinon elle l'ouvre

par exemple.var request = indexedDB.open("DataTbl");

Donc, si votre base de données existe déjà, elle l'ouvrira simplement et vous vérifierez si le contenu de la table existe déjà, vous pouvez créer un magasin d'objets xyz et y stocker une paire d'indicateurs clé/valeur indiquant que l'insertion a réussi et la vérifier plus tard. à chaque fois que la page est rechargée.

Vous pouvez également essayer de compter la fonction spécifiée par @toske

réf :

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top