這裏是我想要做的事情,我有一個文件,其內容如下: 「key」 - 「content」,每個「key」對於內容來說都不是唯一的,一個key可以有零個或多個content很多.... 該文件是約200Kb,我將它轉換爲數組,並將其全部放入JavaScript中。當用戶鍵入,我循環陣列一次找出結果,但它很慢... 有關如何做到這一點的任何建議?謝謝。如何在JavaScript中查詢更快的數據列表?
(允許JavaScript實現,只有客戶端,不允許使用服務器的分析結果,並送回去。)
這裏是我想要做的事情,我有一個文件,其內容如下: 「key」 - 「content」,每個「key」對於內容來說都不是唯一的,一個key可以有零個或多個content很多.... 該文件是約200Kb,我將它轉換爲數組,並將其全部放入JavaScript中。當用戶鍵入,我循環陣列一次找出結果,但它很慢... 有關如何做到這一點的任何建議?謝謝。如何在JavaScript中查詢更快的數據列表?
(允許JavaScript實現,只有客戶端,不允許使用服務器的分析結果,並送回去。)
如果我理解你的話,這些鏈接到John Resig的文章可能會對你有所幫助。他的問題是糟糕的表現,當在輸入大文本文件時尋找有效的單詞。
1部分:Dictionary Lookups in JavaScript
第2部分:JavaScript Trie Performance Analysis
您可以使用關聯數組,具有獨特的鍵指向可能值的數組?
{ 'key1' => ['value1','value2','value3'],
'key2' => ['value1','value2'],
'key3' => ['value1'],
}
這意味着更多的開銷來解析列表,但我敢打賭搜索列表會快得多。它也應該使用較少的內存,因爲你沒有複製內存中的所有重複鍵。
其中, 「更多的開銷」= 「不可忽視的影響」(在大多數目標)。 – 2011-07-09 07:14:02
我假設用戶正在鍵入應該匹配「鍵」的東西?或者「內容」?
假設它是關鍵,然後對鍵進行排序並使用二進制搜索。一旦你得到一個命中(假設部分匹配,比如說,第一個字母),只要繼續掃描,直到你的比賽失敗。這是你的結果集。
如果您正在查詢內容,那麼它是相同的前提,但您需要反轉索引並將內容分解爲您的密鑰並對其進行分類。
有什麼樣的順序,該鍵是? – Kayla
你可以顯示文件的一些行嗎? – KooiInc
好吧,這裏是文件的樣子: 一個|日 一個|曰 一個| 一個| AA |昌 AA |昍 AAA |晶 aamh |暘 AAPH |晹 AAPV |暍 着率|曝 aayf |暻 AB |明 ABAC |暝 阿貝|曖 abbt |盟 abhaf |鷳 abik |猒 – Tattat