jQuery mobile:处理大型筛选列表

时间:2013-04-21 17:15:41

标签: javascript jquery sqlite jquery-mobile html-lists

我有一个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个项目,以便列表可以非常大但仍然可以顺利运行。我不确定这个名单有多大。

2 个答案:

答案 0 :(得分:0)

对于1000件物品,您的搜索不应该慢慢运行。良好的匹配/不匹配算法可以在小于O(N)的情况下运行,并且由于您保持排序顺序不变,因此您不会从快速排序中添加N!。我可以看到您的jQuery过滤器特定代码吗?当它出现时,我会建议性能。

至于您希望这样做的实际方式,如果您最初不想加载1000个请求,请考虑使用AJAX加载和分页。

答案 1 :(得分:0)

我正在开发一个phonegap应用程序,发现jquerymobile listview过滤器非常慢 - 我必须等待2-3秒才能将每个按键接受到搜索框中;对于iOS而言,它比Android更糟糕。

最后我放弃了,现在正在使用datatables而不是listview - 它速度更快,功能更多。