2014-02-25 44 views
0

我正在建設(與合作伙伴)一個小型的網絡應用程序。它是一個信息應用程序,並從JSON文件中提取信息;我們最終會在JSON中獲得大約150個項目,每個項目都有130個屬性。JavaScript和JSON效率?我們應該製作一個更小的陣列?

我們通過查詢存儲在localStorage中的JSON並獲取諸如item [i] .name和item [i] .cssClass之類的東西來構造按鈕,從而在應用中構建按鈕。

問題是 - 它是否更有效率,並且值得在localStorage中創建2個數組,這些數組持有name和cssClass用於構造這些按鈕,或者這是浪費時間,我們只需將名稱直接從JSON的cssClass?

我應該澄清 - 我們需要通過按名稱排序的項目,cssClass等;用戶可以將數據分類到列表中,並且可以將按鈕構建爲字母列表(可以將您帶到項目的詳細信息中),也可以將其作爲分類按鈕,將您帶到該分類中的項目列表。

問題是 - 排序的JSON進行了大量的開銷相比,只是排序名稱數組?

+0

IMO我沒有看到重複JSON的任何一點。我不相信額外的屬性會影響迭代JSON構建元素的性能。 –

+0

我澄清了爲什麼它的問題。對不起,忘了提及排序。 –

+0

數組的複雜性並不大:http://stackoverflow.com/questions/11514308/big-o-of-javascript-arrays – Jorg

回答

2

檢索數組的第i個元素,與獲取對象的屬性相同,其時間複雜度爲O(1)。 JSON是相當高級的語言。只要你不處理數百萬件物品,你就不應該關心解釋器的實現細節。

我猜測Web瀏覽器肯定會花費更多時間處理DOM /呈現頁面,而不是在數據結構上執行的操作。

2

這是浪費時間,我們應該直接從JSON中取出名稱和cssClass嗎?

是的,它會沒事的。 「我們應該忘記小效率,大約97%的時間:不成熟的優化是一切罪惡的根源,但我們不應該把這個關鍵的3%放在一邊。」 - http://c2.com/cgi/wiki?PrematureOptimization

+0

即使對整個JSON(包含150個鍵值對的150個項目)進行重複排序? –

+0

我真的相信。先試試,稍後優化:-) –

+0

謝謝。我們會看看它是如何發展的。 –

相關問題