2013-04-21 70 views
0

處理我有一個jQuery移動的按字母順序排列,分爲名單如下:jQuery Mobile的:大的過濾列表

 <ul id="theList" data-role="listview" data-filter="true" data-filter-placeholder="Search ticker or firm name..." data-inset="true"> 
       <li data-role="list-divider">A</li> 
       <li data-filtertext="itemName"><a href="#">Item</a></li> 
       . 
       . 
       <li data-role="list-divider">B</li> 
       <li data-filtertext="itemName"><a href="#">Item</a></li> 
       . 
       . 
     </ul> 

在頁面加載我填充,隨機生成的投入是1000項的列表一個sqlite數據庫。最初生成和顯示列表是平滑的。這個問題是因爲這是一個過濾列表,我希望用戶能夠搜索它。這麼多項目的搜索速度都很慢。

什麼是一個很好的策略來處理這個?也許我可以按需查詢數據?下面有什麼,我有工作:

  • SQLite數據庫,我可以查詢
  • 某種形式的名單。我希望列表保留在ABC訂單中。
  • 該名單有分隔符。

謹以此擴展到N多的項目,以便列表可以很大,但仍然運行平穩。我不確定這個名單有多大可以增長。

回答

0

您的搜索不應該緩慢運行1000個項目。好的匹配/不匹配算法可以在小於O(N)的範圍內運行,並且由於您要保持排序順序不變,因此您不會從快速排序中添加N!。我可以看到你的jQuery特定於過濾器的代碼嗎?當談到在我對性能提出建議。

至於你想這樣做實際的方式,如果你最初不希望加載1000個請求,考慮加載和使用AJAX分頁。

+0

這是默認的jQuery移動過濾列表。我沒有應用JavaScript,只引用了jQuery mobile.js,它會自動創建搜索過濾器。我同意它不應該那麼慢,但我認爲很多DOM操作非常激烈。 http://jquerymobile.com/demos/1.2.0/docs/lists/lists-search.html – user2220589 2013-04-22 15:01:02

0

我開發一個應用程序的PhoneGap,發現jquerymobile列表視圖過濾器慢得令人難以置信 - 我不得不等待2-3秒鐘,然後每按一次鍵被接納到搜索框; iOS比iOS更糟糕。

最後我放棄了,我現在用datatables而不是列表視圖 - 它是快了很多,有更多的功能。