我有一个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数据库。最初生成和显示列表是顺利的。问题是因为这是一个过滤列表,我希望用户能够搜索它。这很多项目搜索速度都很慢。
处理这个问题的好策略是什么?也许我可以按需查询数据?以下是我必须要做的事情:
我希望这可以扩展到N个项目,以便列表可以非常大但仍然可以顺利运行。我不确定这个名单有多大。
答案 0 :(得分:0)
对于1000件物品,您的搜索不应该慢慢运行。良好的匹配/不匹配算法可以在小于O(N)
的情况下运行,并且由于您保持排序顺序不变,因此您不会从快速排序中添加N!
。我可以看到您的jQuery过滤器特定代码吗?当它出现时,我会建议性能。
至于您希望这样做的实际方式,如果您最初不想加载1000个请求,请考虑使用AJAX加载和分页。
答案 1 :(得分:0)
我正在开发一个phonegap应用程序,发现jquerymobile listview过滤器非常慢 - 我必须等待2-3秒才能将每个按键接受到搜索框中;对于iOS而言,它比Android更糟糕。
最后我放弃了,现在正在使用datatables而不是listview - 它速度更快,功能更多。