2012-03-28 86 views
11

我有大量的數據進行排序和查詢,並且我不能依賴Internet連接。理想情況下,我想將整個數據集存儲爲JSON對象(當​​前大約爲17MB,但可能會變得更大),並使用諸如jLinq或SQLike之類的東西來查詢它,而不必輸出許多較小的文件。JavaScript中的外部JSON對象的最大建議大小

我有興趣找到最大的推薦文件大小是什麼使用JavaScript的外部getJSON調用(特別是jQuery)。 1MB,20MB,100MB?有關這個問題的信息很少。關於查詢大型數據集客戶端的信息很少。

關於這個問題的任何信息將不勝感激。

+0

這一切都發生在本地?你是在瀏覽器環境中,還是使用node.js或類似的東西?我的猜測是,這將高度依賴客戶端機器上的可用內存......這種方法最大的問題可能是解析,因爲您可能需要將整個JSON字符串加載到內存中才能解析它。 – nrabinowitz 2012-03-28 17:33:33

+0

所有客戶端在本地瀏覽器環境中。不能依賴他們安裝並運行jode.js。 – S16 2012-03-28 17:38:57

+0

請注意,您將遇到的第一個問題是根本加載文件 - 通常,瀏覽器安全設置不會讓您使用AJAX加載本地文件,即使是從本地HTML頁面加載。您可以通過將其作爲腳本加載,或者使用JSONP或文檔''來解決此問題。 – nrabinowitz 2012-03-28 18:50:42

回答

10

您最大的問題可能是加載時間,因爲它必須將其從JSON字符串轉換爲實際的JavaScript對象。另一個大問題是整個數據集將存儲在頁面的內存中。我不熟悉使用100MB數據的任何頁面。我發了一個jsfiddle to test loading performance of large JSON strings。看起來大約需要500ms才能解析〜20MB的JSON字符串(在Core i7機器上),而在Chrome中,它使用的內存比JSON字符串基本上爲空時多80MB。所以100MB可能需要幾秒鐘才能加載並使用400MB以上的內存。

這不會解決任何一個問題,但你有沒有考慮使用SQL.js?它是SQLite的JavaScript實現。它應該讓查詢數據變得更容易。