Zählen der Anzahl der Datensätze in einem Objektspeicher in indexedDB

8

Ich möchte die Anzahl der Datensätze in meiner indexedDB-Datenbank grundlegend zählen.

Momentan sieht mein Code wie

aus

JavaScript

%Vor%

Ich würde gerne sagen, dass die Ausgabe nur 3 ist, aber stattdessen bekomme ich.

Ausgabe

%Vor%

Was ist richtig, aber ich will es nur sagen, 3 nicht viele andere Sachen.

    
Brent 18.03.2014, 15:48
quelle

3 Antworten

3

Ein bisschen Einführung in Reihenfolge. Von meinen persönlichen Dokumenten zu Transaktionen:

  

Bestimmte Transaktionen geben Daten oder "Ergebnisse" aus der Datenbank zurück.   Diese Transaktionen werden "Anfragen" genannt und mit Ausnahme von   Datenbanköffnung, die Werte sind immer verschiedene Kombinationen von Objekten   "Schlüssel" und "Werte" und Instanzen von IDBRequest. Transaktionen anfordern   sind nur das: eine Transaktionsanfrage, "nämlich der Akt des Forderns   etwas, anstatt das zu bekommen. Ein Programmierer begegnet ihnen   bei IDBObjectStore-, IDBIndex- oder IDBCursor-Objekten.

Sie suchen nach einem Objekt IDBRequest , das von der Methode count() zurückgegeben wird. Das ist die Anforderung für Daten und nicht die Daten selbst.

Die Daten selbst sind verfügbar, nachdem das Ereignis complete ausgelöst wurde und über die Eigenschaft IDBRequest.result zugegriffen werden kann.

Hier ist eine getestete Zählmethode von meiner Bibliothek, Dash :

%Vor%

Ich werde feststellen, dass ich wahrscheinlich das Ereignis complete und nicht das Ereignis success verwendet haben sollte. Ich kann nicht erklären warum, aber manchmal sind Ergebniswerte nicht in success Callbacks verfügbar.

    
buley 18.03.2014, 15:58
quelle
13

Bringe die Anzahl der Datensätze mit etwas weniger Code zurück:

%Vor%     
AssemblyX 05.08.2014 17:02
quelle
6

Versuchen Sie etwas wie folgt:

%Vor%     
quelle

Tags und Links