2012-03-28 9 views
11

ich eine enorme Menge an Daten zu sortieren und Abfrage, und ich kann nicht auf eine Internetverbindung angewiesen. Idealerweise würde ich gerne meinen gesamten Datensatz als JSON-Objekt speichern (derzeit etwa 17 MB, könnte aber viel größer werden) und etwas wie jLinq oder SQLike verwenden, um sie abzufragen, anstatt viele kleinere Dateien ausgeben zu müssen.Max empfohlene Größe von externem JSON-Objekt in JavaScript

Ich bin daran interessiert, was die größte empfohlene Dateigröße für einen externen getJSON Aufruf ist mit JavaScript (jQuery, speziell). 1 MB, 20 MB, 100 MB? Informationen zu diesem Thema sind knapp. Informationen zur Abfrage großer Datensätze auf der Client-Seite sind rar.

würde Alle Informationen zu diesem Thema sehr geschätzt.

+0

Dies geschieht alles lokal? Sind Sie in einer Browserumgebung oder verwenden Sie node.js oder etwas Ähnliches? Meine Vermutung ist, dass dies in hohem Maße von dem im Client-Rechner verfügbaren Speicher abhängt ... Das größte Problem bei diesem Ansatz ist wahrscheinlich das Parsen, da Sie möglicherweise die gesamte JSON-Zeichenfolge in den Speicher laden müssen, um sie zu parsen. – nrabinowitz

+0

Alle Client-Seite lokal in einer Browserumgebung. Ich kann mich nicht darauf verlassen, dass jode.js installiert und ausgeführt wird. – S16

+0

Beachten Sie, dass das erste Problem, das Sie haben werden, das Laden der Datei überhaupt ist - im Allgemeinen lässt die Sicherheitseinstellung des Browsers das Laden einer lokalen Datei mit AJAX nicht zu, auch nicht von einer lokalen HTML-Seite. Sie können dies umgehen, indem Sie es als Skript laden, entweder mit JSONP oder im Dokument ''. – nrabinowitz

Antwort

10

Ihr größtes Problem wird wahrscheinlich Zeit geladen, da sie es aus einer Reihe von JSON in ein tatsächliches JavaScript-Objekt konvertieren müssen. Das andere große Problem wird sein, dass der gesamte Datensatz für die Seite im Speicher ist. Ich kenne keine Seite mit 100 MB + Daten.

Ich habe einen jsfiddle to test loading performance of large JSON strings. Es sieht so aus, als würden ~ 500 ms benötigt, um eine ~ 20MB lange JSON-Zeichenfolge (auf einem Core i7-Computer) zu parsen, und in Chrome werden 80 MB mehr Speicher benötigt, als wenn die JSON-Zeichenfolge im Prinzip leer wäre. Es kann also 100MB dauern ein paar Sekunden zu laden und 400MB + Speicher zu verwenden.

Dies wird entweder diese Probleme nicht lösen, aber haben Sie SQL.js mit in Betracht gezogen? Es ist eine JavaScript-Implementierung von SQLite. Es sollte die Abfrage dieser Daten viel einfacher machen.

Verwandte Themen