Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jquerymobile:处理大型过滤列表_Javascript_Jquery_Sqlite_Jquery Mobile_Html Lists - Fatal编程技术网

Javascript jquerymobile:处理大型过滤列表

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>

我有一个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>
  • 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操作都非常激烈。