2013-04-21 2 views
0

다루기 내가 jQuery를 모바일에게 알파벳 순으로 정렬 된 분할 목록을 다음과 같이 페이지로드의 jQuery 모바일 : 큰 필터링 된 목록

 <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> 

내가 무작위로 생성에 투입 1,000 항목 목록을 채울 sqlite 데이터베이스. 처음에는 목록을 생성하고 표시하는 것이 원활합니다. 사용자가 검색 할 수 있도록 필터링 된 목록이므로 문제가됩니다. 이 항목이 많으면 검색 속도가 매우 느립니다.

이 문제를 처리하기위한 좋은 전략은 무엇입니까 ?? 수요에 따라 데이터를 쿼리 할 수 ​​있습니까? Heres는 내가 함께 일해야 무엇 :

  • 나는 어떤 종류의
  • 목록을 조회 할 수있는 SQLite 데이터베이스. 목록을 ABC 순서로 유지하겠습니다.
  • 목록에 구분선이 있습니다.

이 항목을 N 개의 항목으로 확장하면 목록이 매우 커질 수 있지만 원활하게 실행됩니다. 목록이 얼마나 커질 지 확신 할 수 없습니다.

답변

0

천천히 항목을 검색하면 안됩니다. good match/no match 알고리즘은 O(N) 미만으로 실행할 수 있으며 정렬 순서를 일정하게 유지하면 quicksort에서 N!을 추가하지 않습니다. jQuery 필터 관련 코드를 볼 수 있습니까? 성능에 관해서 조언 해 드리겠습니다.

처음에는 1000 개의 요청을로드하지 않으려면 AJAX를 사용하여로드 및 페이지 매김을 수행하는 것이 좋습니다.

+0

기본 jQuery 모바일 필터링 목록입니다. 내가 적용한 자바 스크립트는 없으며 jQuery mobile.js 만 참조하면 검색 필터가 자동으로 생성됩니다. 나는 그렇게 느리지 않아야한다고 동의하지만 많은 DOM 조작이 매우 강력하다고 가정합니다. http://jquerymobile.com/demos/1.2.0/docs/lists/lists-search.html – user2220589

0

나는 phonegap 앱을 개발 중이며 jquerymobile listview 필터가 매우 느린 것을 발견했습니다. 각 키가 검색 상자에 입력되기 전에 2-3 초 정도 기다려야했습니다. 안드로이드보다 iOS에서 더 나빴습니다.

결국 나는 포기하고 이제는 listview 대신 datatables을 사용하고 있습니다. 훨씬 빠르며 더 많은 기능을 가지고 있습니다.