모든 KeyUp 이벤트에 대해 ajax 요청을 보내려면 엄청난 양의 트래픽처럼 보입니다. 사용자는 적어도 100 밀리 초 동안 입력이 중지 될 때까지 기다려야합니다.
는 내가 뭘 할 것은 이것이다 :
var ajaxTimeout;
function doAjax() {
//Your actual ajax request code
}
function keyUpHandler() {
if (ajaxTimeout !== undefined)
clearTimeout(ajaxTimeout);
ajaxTimeout = setTimeout(doAjax, 200);
}
당신은 실제 타임 아웃 시간 함께 플레이 할 수 있지만,이 방법은 아주 잘 작동하고 다른 플러그인을 필요로하지 않습니다.
편집 : 매개 변수를 전달해야하는 경우 인라인 함수 (클로저)를 만듭니다. , 또 다른 옵션 자동 완성 플러그인 코드를 연구하고 그 에뮬레이션 :
http://plugins.jquery.com/project/ajaxqueue
또는 http://www.protofunc.com/scripts/jquery/ajaxManager/
편집 :
...
var fun = function() { doAjax(params...) };
ajaxTimeout = setTimeout(fun, 200);
좋은 의견입니다. 응답 시간의 차이가 .5s보다 클 수 있다고해도 문제가 해결되는 것은 아닙니다. (로드가 많은 공유 호스팅의 경우 쉽게 그렇습니다.) – Wim