2010-03-20 5 views
2

맞은 사람, 내가 찾은 모든 자동 완성 플러그인 및 기능은 키 업/다운시에만 업데이트됩니다. 괜찮습니다. 그러나 사용자가 타이핑을 멈 추면 검색이 시작됩니다. 문구 나 단어를 입력하면 스크립트가 즉시 제안을 시작할 수 없습니다.입력시 자바 스크립트 자동 완성

저는 여러분 중 일부가 매우 간단하게 수정하거나 제안 할 것이라고 알고 있습니다. 키를 누를 때 즉시 변환 할 수 있습니다.

원하는 효과의 예는 Google 추천 또는 Facebook 검색이며, 키 누르기 또는 변경 당 즉시 검색이 실행됩니다. 어떻게 이것을 에뮬레이션합니까?

감사합니다.

답변

1

그것은 당신이 검색하는 방법 큰 공간에 따라 결정되며, 얼마나 좋은 서버 : 웹 프레임 워크에 대한 자세한 내용은 http://svn.apache.org/repos/asf/wicket/trunk/wicket/src/main/java/org/apache/wicket/ajax/wicket-ajax.js

를 참조하십시오 아르. 페이스 북 검색 (나는 사람들의 이름을 추측한다)은 정말로 천이나 그 이상의 접촉을 통해서만 검색하기 때문에 빠르다. 인프라에 많은 돈을 투자하고 많은 응답을 캐시하기 때문에 Google은 빠릅니다.

내 프로젝트 중 하나에서 this jQuery 플러그인을 사용했으며 캐시 된 결과에서 우수한 성능을 제공합니다. 우리는 약 6K 연락처 (이름 등)의 목록에 자동 완성 기능을 제공하는 데 사용했습니다. 이게 당신이 염두에 두었던 것입니까?

2

이게 무슨 뜻이야? 아니면 Ajax가 데이터베이스에서 검색하기를 원합니까?

var data = "Core Selectors Attributes Traversing Manipulation CSS Events Effects Ajax Utilities".split(" "); 
    $("#example").autocomplete(data); 

JQuery

편집 :이 예제는 구글이 제안 또는 페이스 북과 동일한 작동하는 것 같다 때문에, 나는 당신이 무슨 뜻인지 모르겠어요. 데이터베이스가 작 으면 페이지로드시 캐시를 가변 데이터로 다운로드 할 수 있습니다. 데이터베이스가 약간 큰 경우 각 알파벳 문자 또는 일련의 문자에 대한 응답 수를 X 개로 제한하십시오. (예 : 'aa %'와 같은 10 개의 제한 없음 ...)

+1

이것은 내 질문이 아닙니다. AJAX를 통해 문제를 검색 할 수 있습니다. 나는 단순히 텍스트가 바뀔 때 즉시 사건을 해고 할 수있는 방법을 묻는다. 현재 방법은 느리며 즉각적인 응답을 제공하지 않습니다. – James

1

Wicket 웹 프레임 워크에는 "제한"동작 개념이 있습니다. 일반적으로 Wicket 응용 프로그램의 AJAX 요청은 "ajax 채널"에 대해 대기하며 아무 것도 실행되지 않으면 요청을 즉시 실행합니다. 요청이 이미 실행 중이면 다음 요청은 대기열에 추가되고 현재 요청이 반환 될 때 트리거됩니다.

"조절"은 행동이 특정 시간 (예 : 2 초) 동안 지연되도록합니다. 동일한 기간에 동작이 다시 발생하면 가장 최근의 동작에 대한 콜백이 현재 대기중인 동작에 대한 콜백을 대체합니다. 예를 들어, 사용자는 "A"다음에 "AL", "ALB"이벤트를 트리거하는 "albuquerque"를 입력하기 시작합니다. 시스템은 "A"를 트리거 한 다음 "ALB"를 트리거 할 수 있습니다. 대기열에 앉아있는 동안 "ALB"로 바뀜).이 키의 목적은 각 키 누르기에서 즉시 동작을 시작하지만 서버가 불필요한 요청으로 넘치지 않도록하는 것입니다.

체크 아웃 개찰구 아약스 소스 코드 : http://wicket.apache.org

+2

나는 당신이 기술 한 행동에 대한 정확한 용어를 생각한다. (같은 기간에 행동이 다시 발생하면 가장 최근의 행동에 대한 콜백이 현재 대기중인 행동에 대한 콜백을 대신한다.) 전기 공학 용어를 '디 바운싱 (debouncing)'이라고한다. 스위치의 기계적인 잡담을 부드럽게합니다. –

관련 문제