2013-04-21 68 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而不是列表视图 - 它是快了很多,有更多的功能。