2011-08-31 5 views
1

웹킷을 대상으로하는 모바일 웹 응용 프로그램을 구축 중입니다. ~ 5000 명의 사용자 데이터베이스에 대해 실시간 검색 (키 누름시)을 수행해야한다는 요구 사항이 있습니다. 페이지로드모바일 사파리를위한 가장 실용적인 실시간 검색 기술

  1. , 모두 5000 사용자의 메모리 표현을로드하는 AJAX 호출을 수행하고 클라이언트를 쿼리 :

    나는 다른 기술의 번호를 시도했습니다. 너무 큰 것으로 판명 된 JSON과 split()을 사용하여 구문 분석 된 사용자 정의 구분 문자열을 보냈습니다. 이것은 더 좋았지 만 궁극적으로이 사용자 배열에 대한 검색은 느 렸습니다.

  2. 사용자 지정 구분 문자열 기술을 사용하여 쿼리를 기반으로 사용자를 반환하는 기존 AJAX 호출을 사용해 보았습니다. 이것은 더 좋았지 만 검색을 최소 3 자 이상으로 수행하도록 조정해야했습니다. 1 문자 뒤에 필터링을 시작할 수 있기를 원하므로이 방법은 최적이 아닙니다. 특정 임계 값 내의 모든 키 입력이 요청을 트리거하지 않도록 호출을 조정할 수도 있습니다. 이것은 성능에 도움이 될 수 있지만, 나는 그런 종류의 일을 피델리스트로하지 않아도됩니다.

페이스 북의 모바일은 친구 검색을 시도하면 매우 잘됩니다. 검색은 즉시 발생하며 1자를 기준으로 트리거됩니다.

내 질문에 모바일 앱의 빠른 실시간 검색에 대한 의견이 있으십니까? localStorage를 볼까요? 이것이 신뢰성 있고 실현 가능합니까?

답변

0

이진 검색을 사용할 수없는 이유가 있습니까? 찾고있는 이름은 한 블록 안에 있어야합니다. 성 및 이름 검색을 원하면 성으로 정렬 된 데이터의 두 번째 복사본을 만들어 두 세트를 모두 볼 수 있습니다.

이러한 유형의 문제를 해결 일부 도움이되지만 더 복잡한 데이터 구조

은 다음과 같습니다

http://en.wikipedia.org/wiki/Directed_acyclic_word_graph http://en.wikipedia.org/wiki/Trie

관련 문제