Javascript jquerymobile:处理大型过滤列表
我有一个jQuery mobile,它是一个按字母顺序划分的列表,如下所示:Javascript jquerymobile:处理大型过滤列表,javascript,jquery,sqlite,jquery-mobile,html-lists,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>
<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>
- A
.
.
- B
.
.
在页面加载时,我用随机生成的1000个项目填充列表,并将其放入sqlite数据库。最初生成和显示列表是平滑的。问题是,因为这是一个过滤列表,我希望用户能够搜索它。对于这么多的项目,搜索速度相当慢
处理这个问题的好策略是什么??也许我可以根据需要查询数据?以下是我必须处理的问题:
- 我可以查询的SQLITE数据库
- 某种清单。我希望名单保持ABC顺序
- 名单上有分隔符
我想把它扩展到N个项目,这样列表可以非常大,但仍然可以顺利运行。我不确定列表会增长到多大。对于1000个项目,您的搜索速度不应该那么慢。一个好的匹配/不匹配算法可以在小于
O(N)
的时间内运行,并且当您保持排序顺序不变时,您不会添加N代码>来自快速排序。我可以看一下您的jQuery筛选器特定代码吗?到时候我会就性能提出建议
至于你想这样做的实际方式,如果你最初不想加载1000个请求,考虑使用Ajax加载和分页。
> P>我正在开发一个PoPGEAP应用程序,发现JQueYouMaskListVIEW过滤器慢得难以置信——我必须等待2-3秒后才能将每个按键输入到搜索框中;iOS比Android更糟糕
最后我放弃了,现在用它来代替listview——它速度更快,而且有更多的功能特征。 这是默认的jQuery移动过滤列表。我没有应用javascript,只引用jQuery mobile.js,它会自动创建搜索过滤器。我同意它不应该那么慢,但我认为很多DOM操作都非常激烈。