2016-07-28 12 views
0

Ich bin mit Chrome-Storage-API, das Verfahren chrome.storage.local.get('key');Anfordern von Daten aus dem Speicher in Chrome-Erweiterung

Mein Programm hat, wird nun eine Liste von Daten in jedem Tag zu speichern.

Was ich Speicherung (nicht so wichtig) Art der Daten
If user browse facebook.com for N minutes and google.com for M minutes in 2016/7/28, I'll store "facebook.com||N::google.com||M" in key "2016/7/28". '::' seperates each data '||' seperate domain and time.

Was ist das Problem

Die Menge der Daten zu einer sehr großen Zahl wachsen kann, und einer meiner Programmfunktionen werden Anfrage unsicher viele (beliebige natürliche Zahl) Datumsdaten aus dem Speicher.

Betrachtet:

1. Die Anzahl der angeforderten Tage ist unsicher, daher sollten die Daten nicht in einem einzigen Schlüssel gespeichert werden. Oder ich muss eine riesige Menge an Daten aus dem Speicher ziehen, selbst wenn ich nur einen einzigen Tag anfordern möchte, was absolut idiotisch erscheint.

2. ABER! Wenn das Programm mehr als 100 oder mehr Daten aus dem Speicher fordert, muss ich die Methode chrome.storage.local.get('date'); für jedes Datum aufrufen. Aber ich bin mir nicht sicher, wie diese Methode implementiert wird und ob sie diese verrückte Aufgabe erfüllen kann. Selbst wenn es möglich wäre, bin ich mir nicht sicher, ob ich die über 100 Callbacks insgesamt verketten sollte (scheint eine mächtige Bombe zu sein).

3. Oder, sollte ich diese Funktion aufgeben und den Benutzer zwingen, eingeschränkte Optionen zu wählen (zB: kann nur 10, 50, 100, 365 Tage wählen). In diesem Fall muss ich nur die Datenstruktur für jede Option verwalten. Aber das ist nicht :(

scheint abkühlen würde ich Fall 1 oder 2 als Fall bevorzugt 3. Oder ist es eine mögliche Lösung für diese Situation?
Dank!

Antwort

1

chrome.storage.local.get akzeptiert auch array als Schlüssel, Sie könnten mehr als 100 Datum als Array wickeln, sagen, dass [DAY1, DAY2, ..., DAY100],

chrome.storage.local.get([DAY1, DAY2, ..., DAY100], function (result) { 
    var DAY1 = result.DAY1; 
}); 

BTW ist, wenn die Daten groß genug ist, können Sie unlimitedStorage Erlaubnis in Betracht ziehen würden.

+0

Danke! Sie haben auch auf ein potenzielles Problem hingewiesen! Ich werde darüber nachdenken! –

Verwandte Themen