전적으로 데이터의 크기와 쿼리의 복잡성에 따라 달라집니다. 합리적으로 데이터를 미리 클라이언트에 전송 한 다음 로컬로 검색 할 수 있다면 모든 로컬이고 서버를 쿼리하는 대기 시간이 없기 때문에 유용합니다. 그러나 많은 양의 데이터가 있거나 쿼리가 복잡하면 서버에서 쿼리를 수행하는 것이 더 합리적 일 수 있습니다.
하나의 크기에 맞는 솔루션은 없으며 데이터에 따라 다릅니다.
... 그리고 검색 상자에 사용자가 입력 한 모든 문자로 AJAX를 통해 콘텐츠를 검색합니다.
보통 과장입니다. 일반적으로 ajax 호출을 시작하기 전에 사용자 입력에 잠시 멈출 때까지 기다려야하므로 "james"를 빠르게 연속해서 입력하면 "j"를 검색하는 대신 "james"를 검색 한 다음 "ja" ","jam ","jame ","james "순으로 나타납니다.
예를 들어 검색 트리거가 keypress
이벤트라고 가정 해 보겠습니다.
var keypressTimer = 0;
function handleKeypress() {
if (keypressTimer) {
cancelTimeout(keypressTimer);
}
keypressTimer = setTimeout(doSearch, 100); // 100ms = 1/10th of a second
}
function doSearch() {
var searchValue;
keypressTimer = 0;
searchValue = /*...get the search value...*/;
doAjaxCallUsing(searchValue);
}
이 (누를 것 같은 키의 "수신 거부"기계 및 전기 관련 하드웨어 엔지니어링에서) "디 바운싱"입력이라고 : 이것은 매우 일반적인 방법이 될 것입니다.
대신에 자주 검색 한 단어와 최근에 검색 한 단어를 볼 수 있습니다. – techuser