Max taille recommandée externe d'objet JSON en JavaScript
J'ai une énorme quantité de données à trier et à la requête, et je ne peux pas compter sur une connexion internet. Idéalement, j'aimerais stocker l'ensemble de mon jeu de données comme un objet JSON (actuellement autour de 17MB, mais pourrait obtenir beaucoup plus grande) et d'utiliser quelque chose comme jLinq ou SQLike l'interroger, plutôt que d'avoir à la sortie de nombreux petits fichiers.
Je suis intéressé à trouver ce que la plus grande recommandé taille du fichier est externe getJSON appel à l'aide de JavaScript (jQuery, en particulier). 1 MO, 20 MO, 100 MO? Des informations sur le sujet sont rares. Informations sur l'interrogation de grands ensembles de données côté client est rare tout autour.
Toute information sur le sujet serait grandement apprécié.
Tous les côté client, localement, dans un environnement de navigateur. Ne peut pas compter sur eux jode.js installé et en cours d'exécution.
Notez que le premier problème que vous allez avoir, c'est de charger le fichier à tous - en général, les paramètres de sécurité du navigateur ne vous permettra pas de charger un fichier local avec l'AJAX, même à partir d'une page HTML local. Vous pouvez contourner ce problème en le chargeant comme un script, soit avec JSONP ou dans le document
<head>
.OriginalL'auteur S16 | 2012-03-28
Vous devez vous connecter pour publier un commentaire.
Votre plus gros problème sera probablement temps de chargement car il aura à le convertir à partir d'une chaîne JSON en un véritable objet JavaScript. L'autre gros problème est que l'ensemble des données en mémoire pour la page. Je ne suis pas familier avec une page à l'aide de 100MB+ de données.
J'ai fait un jsfiddle pour tester les performances de chargement des grandes chaînes JSON. On dirait qu'il faut ~500ms juste pour analyser un ~20 MO chaîne JSON (sur un Core i7 de la machine), et dans Chrome il utilise 80MB plus de mémoire que si la chaîne JSON essentiellement vide. Donc, 100MB peut prendre quelques secondes pour charger et utiliser de 400 mo+ de mémoire.
Cela ne suffit pas à résoudre un de ces problèmes, mais avez-vous considéré l'utilisation de SQL.js? C'est un JavaScript de mise en œuvre de SQLite. Il convient de faire de l'interrogation des données beaucoup plus facile.
OriginalL'auteur pseudosavant