Javascript API Wrapper um Webspeicher?

8

Gibt es eine browserübergreifende jquery-ähnliche Wrapper-API-Abstraktion über die verschiedene Web Storage Systeme verfügbar?

    
pathikrit 28.07.2012, 23:42
quelle

5 Antworten

9

localStorage (alias "web storage") ist nicht wirklich mit Web SQL oder IndexedDB vergleichbar, da es räumlich stark eingeschränkt ist und es synchron ist (lies: friert die Benutzeroberfläche des Browsers ein, da es scheiße ist). Aus diesem Grund ignoriere ich localStorage im Rest meines Posts. Aber wenn Sie nur ein wenig Speicherplatz benötigen, können Sie einfach localStorage direkt verwenden, da es ziemlich weit verbreitet ist, oder verwenden Sie lawnchair wie der andere Beitrag vorgeschlagen, der noch weiter unterstützt wird.

Wir bleiben also mit Web SQL und IndexedDB. Web SQL ist zum Guten oder zum Schlechten eine Sackgassen-Technologie. Niemand arbeitet an der Spezifikation, niemand arbeitet an einer neuen Implementierung. IE und Firefox werden es nie unterstützen, und es ist in anderen Browsern veraltet und wird wahrscheinlich irgendwann entfernt werden. Aber es gibt derzeit einige Browser, die es unterstützen (Chrome, Opera, Safari), also theoretisch könnte es in einer Bibliothek verwendet werden, wenn die anderen Browser, die Web SQL nicht unterstützen, eine Alternative haben.

IndexedDB wird in Browsern leider nicht gut unterstützt. Firefox hat eine gute Implementierung; Chrome ist etwas zurückgeblieben, holt aber auf. Sie können dieses IndexedDB Polyfill verwenden, um IndexedDB-Unterstützung in jedem Browser zu erhalten, der Web SQL unterstützt, der theoretisch alle aktuellen / gängigen Browser außer IE abdecken sollte .

Ah, IE. Es kommt immer auf den IE an, oder? Tatsache ist, dass es keinen vernünftigen Weg gibt, lokale Speicher wie IndexedDB oder Web SQL in IE zu betreiben. IE 10 unterstützt IndexedDB. Wann immer Menschen aufhören, IE 9 und niedriger zu verwenden, wird IndexedDB wahrscheinlich hervorragende Unterstützung in allen anderen Browsern haben, so dass Sie nur die IndexedDB-API oder eine Bibliothek darüber verwenden können. Bis zu diesem Punkt ... nun, du hast kein Glück.

    
dumbmatter 29.07.2012 05:24
quelle
7

Wrapper, die mehrere Speicherimplementierungen unterstützen

Pouch DB

localForce

RasenChair

YDN - DB

IndexedDB-Polyfill über WebSQL

IndexedDB Shim

IndexedDB Polyfill

Wenn Sie nur kleine Datenmengen speichern möchten, reicht eine dieser einfachen oder einfacheren Wrapper für den reinen Webspeicher aus. Wenn Sie mehr Speicherplatz benötigen, müssen Sie die Idee des Webspeichers ablegen und indexedDB polyfill verwenden. Aber der Nachteil solcher Polyfills ist, dass die Indizierung nicht immer gut funktioniert, besonders bei mehreren Indizes, und in mobilen Browsern ohne native indexedDB (iOS) schlecht sein kann. Pouch DB sieht mit seinen Sekundärindizes wie eine gute Lösung aus, wenn Indizierung entscheidend ist. Wenn iOS kein Ziel ist, können Sie einfach mit der nativen indizierten Datenbank fortfahren, da fast überall außerhalb von Apfelgärten unterstützt wird.

Webspeicher

Modus: Schlüssel-Wert-Paar Größe: 2,5 MB - 5 MB Skalierbarkeit: Schlechte Leistung für große / komplexe Daten Suche: Schlechte Suchleistung ohne Indizes oder andere Mittel Indizierung: Keine Indexierung verfügbar Kompatibilität: Wird in allen modernen Browsern einschließlich mobiler Browser unterstützt Zukunftssicher: Die Unterstützung sollte für sehr lange Zeit beibehalten werden. Die Spezifikation ist getrennt von w3c und existiert als eine eigene Spezifikation. W3c wird wahrscheinlich alles mit indizierten DB tun

WebSQL

Modus: Relationale Datenbank Größe: Standard ~ 5 MB fordert den Benutzer auf, auf 10, 50, 100, 500 MB zu erweitern Skalierbarkeit: Verwendet relationale Datenbankkonzepte, die gut skaliert werden können. Gute Leistung für große Daten im Vergleich zu Web Storage. Suche: Gute Suchleistung bei der Indexierung in RDBMS. Indizierung: Indizierung in RDBMS verfügbar Kompatibilität: Wird von Webkit-basierten Browsern wie Chrome, Safari und mobilen Browsern wie iOS Safari unterstützt. Nicht von Microsoft und Firefox unterstützt und haben beschlossen, nie zu unterstützen, da die Spezifikation von nicht-Standard-SQL-Lite abhängt. Gleichzeitig ist Web SQL die einzige skalierbare Lösung, die auf iOS-Geräten und in Safari verfügbar ist. Zukunftssicher: Web SQL ist nicht zukunftssicher. Die Spezifikation wird ab 2011 nicht mehr beibehalten und veraltet. Auch die meisten Anbieter außer Apple haben begonnen, in die indizierte Datenbank zu wechseln.

IndizierteDB

Modus: Indexiertes Tabellensystem Größe: Standard ~ 5-50 MB fordert den Benutzer zur Erweiterung auf. Skalierbarkeit: Kann so viele Datenbanken und beliebig viele Speicher pro Datenbank haben. Kann leicht skaliert werden. Suche: Sehr gute Suchleistung mit Technologie, die auf Indexierung basiert. Indizierung: Entwerfen Sie selbst basierend auf der Indizierung. Kompatibilität: Unterstützt in Chrome, Firefox, IE 10 unter anderen modernen Browsern. Die fehlenden Anbieter sind nur Apple. Apple hat die indizierte Datenbank weder in Safari noch in iOS Safari implementiert. Future Proof: Die indizierte DB-Spezifikation ist die aktuelle Richtung der Web-Persistenz, die speziell für den clientseitigen Speicher entwickelt wurde. Dies sollte bald Web SQL und lokalen Speicher knock out, da es die Macht dieser beiden Spezifikationen hat.

    
sabithpocker 19.05.2014 02:06
quelle
6

Store.js sollte für Sie arbeiten. Es verwendet localStorage, wo verfügbar. Für IE6 und IE7 verwendet es userData-Verhalten.

Es ist API ist nett und einfach:

%Vor%     
stevendaniels 19.01.2013 04:28
quelle
2

Es gibt einen Liegestuhl ... Ich hatte es ein paar Mal vorgeschlagen, aber habe nicht lange damit gearbeitet:

Ссылка

    
Robot Woods 28.07.2012 23:53
quelle
2

Es gibt YDN-DB , die eine browserübergreifende API für IndexedDB, WebSQL und localStorage bereitstellen. Es hat auch JQuery-Plugin.

    
Kyaw Tun 20.09.2012 06:10
quelle