2014-11-15 3 views
1

Meteor에서 사용자가 입력하는 동안 데이터베이스가 있는지 확인하는 가장 효율적인 방법은 무엇입니까?입력하는 동안 값이 이미 있는지 확인하십시오.

예를 들어 사용자가 계정을 등록하기 위해 원하는 이름을 입력하는 동안 데이터베이스에 사용자 이름이 있는지 확인하려고합니다.

키 스트로크가있을 때마다 확인하기 위해 keydown 이벤트를 만들거나 setInterval을 사용할 수는 있지만 과도한 행동이라고 생각합니다.

Meteor에 이와 같은 방법으로 내장 된 메소드가 있습니까?

+0

보통 입력이 포커스를 잃을 때 수행합니다. –

+1

'Collection.find ({value : {$ regex : your_input.value}};)를 쿼리로 사용하고 있는데, 꽤 잘 작동하고 있습니다. – Sindis

답변

1

나는 그런 것을 보지 못 했으므로 직접 제작해야합니다. 입력이 매우 쉽게 기존 사용자의 목록을 검색 할 수 있습니다 동안 사용자 이름이 촬영

보안

개 표시. 어쨌든 (예를 들어 포럼에서) 사용자 목록을 대중에게 제공 할 수 있으면 괜찮을 수 있지만 대부분의 응용 프로그램에서는이를 피하십시오.

사용자가 서비스 데이터베이스를 확인 할 수있는 것보다

사용자는 아마도 빠르게 입력 입력 멈출 때까지 대기. 따라서 모든 키 스트로크를 확인하면 불필요한 서비스 호출이 많이 발생합니다. 최소한 지연을 구현하거나 필드가 포커스를 잃을 때까지 기다려야합니다.

당신은 서비스 호출을 최소화하기 위해 시도해야 다음 문자를

을 Forseeing. 예를 들어 누군가 "Mic"라고 입력 한 경우 정확한 이름을 확인하는 것 외에도 "Mick"및 "Mic1"이 이미 촬영 된 것으로 추가 할 수 있습니다. 추가 최적화는 일반 이름을 기반으로 둘 이상의 문자를 예측하는 것이지만 아마도 결코 필요하지 않을 것입니다. 서비스 호출을 트리거 할 때 예를 들어, 자동 완성 구성 요소의 일부 코드를 재사용 할 수있는 자동 완성 코드

을 인용

. 하지만 대부분의 코드는 사용자 인터페이스가 매우 다르기 때문에 재사용 할 수 없습니다.

관련 문제