0

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

4

2 回答 2

0

对于 1000 个项目,您的搜索不应该运行得那么慢。一个好的匹配/不匹配算法可以在 less than 中运行O(N),并且当您保持排序顺序不变时,您不会添加N!from 快速排序。我可以查看您的 jQuery 过滤器特定代码吗?我会在性能方面提供建议。

至于您想要执行此操作的实际方式,如果您最初不想加载 1000 个请求,请考虑使用 AJAX 加载和分页。

于 2013-04-22T11:38:19.307 回答
0

我正在开发一个 phonegap 应用程序,发现 jquerymobile listview 过滤器非常慢 - 我必须等待 2-3 秒,然后每次按键都被接受到搜索框中;iOS 比 Android 更糟糕。

最后我放弃了,现在正在使用数据而不是 listview - 它更快并且具有更多功能。

于 2013-05-21T10:15:57.540 回答