2012-06-11 8 views
7

Für Chrome kann ich IndexedDB und WebSQL verwenden, für Firefox kann ich IndexedDB verwenden, was ist mit IE? Ich habe eine App entwickelt, die WebSQL verwendet und funktioniert gut auf Desktop-Chrome und Safari, iOS Safari und Android-Browser. Als nächstes möchte ich es zu Desktop Firefox und IE portieren. Ich denke über IndexedDB nach, aber das Finden von IE unterstützt es nicht wirklich. Welche Alternative habe ich?Unterstützt IE indexedDB, WebSQL oder eine SQLite ähnliche Datenbank?

+0

Welche Versionen von IE müssen Sie unterstützen? – Spudley

Antwort

7

IE10 unterstützt IndexedDB. Sie können auch localStorage in IE8 + verwenden. Für ältere Versionen können Sie proprietäre userData Verhalten verwenden: http://www.javascriptkit.com/javatutors/domstorage2.shtml

Bitte beachten Sie, dass WebSQL-Datenbank veraltet ist und die Spezifikation nicht mehr gepflegt wird.

+0

Die meisten IE-Benutzer sind gerade auf IE8 oder IE9, daher hilft IndexDB nicht. localStorage unterstützt keine SQLite-Abfragen, daher muss ich meine App neu schreiben, um keine lokale Datenbank zu verwenden? WebSQL wird abgeschrieben, aber es ist das einzige, was derzeit auf Desktop-Computern Chrome, Safari UND Mobile funktioniert. Ich hätte gerne IndexedDB benutzt, aber ich sehe keinen Plan für mobilen Support. Ist das nicht der Fall? – netmobile

+0

Keine angekündigten Pläne, nein. IDB in Chrome wird von LevelDB unterstützt, so dass sie es wahrscheinlich auf Android bekommen müssen, bevor Google es zum mobilen WebKit beiträgt. FF ist SQLite-gesichert, so dass es möglicherweise gut auf Android passt. Wer weiß, ob es jemals Unterstützung auf iOS geben wird. Es scheint nicht gut zu sein mit dem nativen App-Modell, das Apple sowieso bevorzugt. – buley

3

Wie duri Notizen WebSQL hat die Beschwörung des Unheils ** gegeben, aber es ist oft die einzige praktische Technologie für plattformübergreifende lokale Speicherung - vor allem im Umgang mit mobilen.

IE does not support WebSQL, und da die Leute, die die Spezifikation schreiben, nicht zu einer Implementierung kommen können, werden Sie wahrscheinlich bald keine Implementierung sehen. IE10 ist noch nicht Mainstream, also auch nicht IndexedDB. (Darüber hinaus leidet IndexedDB unter zwei verschiedenen Implementierungen in Chrome (alt) und FF (neu), was sogar die Entwicklung nicht vollständig stabil macht.)

localStorage is the only truly cross platform option, wobei mobile Opera der einzige Nicht-Implementor ist. Meiner Erfahrung nach sollten Sie nicht darauf zählen, dass es bei mittelgroßen oder größeren Datensätzen gut funktioniert.

** Wie bei "McBeth" bei Theatern, bitte ich Sie, diese Wörter niemals in der Nähe einer IndexedDB-Implementierung zu sagen: "Die Web SQL-Datenbankspezifikation wird nicht mehr gepflegt und die Unterstützung kann in zukünftigen Versionen entfallen."

+0

Ich denke, dass WebSQL ein viel längeres Leben haben wird als all das Gerede darüber, veraltet zu sein, nur weil es funktioniert und es die einzige praktische Technologie ist, wenn Sie auch mobil brauchen. Sehen Sie einfach nicht, dass ein Browser-Hersteller es in absehbarer Zeit wieder entfernt. – netmobile

+0

Völlig einverstanden. Leute zitieren die Spezifikation des Untergangs, aber reden nie darüber, dass Code oft hinzugefügt, aber selten entfernt wird. – buley

0

Das Google Chrome-Team hat IndexedDB sehr unterstützt, also würde ich erwarten, dass Chrome für Android es bald bekommt, wenn sie es noch nicht haben. Es gibt keine Notwendigkeit, LevelDB "Unterstützung" in Android zu haben, es ist nur eine Bibliothek wie viele andere, die Chrome verwendet.

Verwandte Themen