저는 여기 새로 왔으니 제발 쉽게가주십시오. 이것은 다소 혼란스러운 상황입니다. :)사용자로부터 몇 초 동안 사용하지 않으면 ajax 코드가 실행됩니다.
사용자가 검색 텍스트 상자에 다른 사용자 (또는 이름의 일부) 이름을 입력 한 다음 해당 검색 문자열과 일치하는 사용자 목록이 반환되는 검색 입력 작업을하고 있습니다. 문제는 수만 명의 사용자가 관련되어있을 때 조금 느리다는 것입니다. 이 속도 저하로 인해 사용자가 검색 입력에 이름을 빠르게 입력하면 각 키 스트로크 (사용자가 이미 검색 문자열을 입력 한 후)에 검색 결과가 깜박이기 시작합니다. 그것은 심하게 지연된 반응과 같습니다.
예를 들어 'Wendy'라는 이름을 입력하면 검색 문자열 'W'(입력 한 첫 번째 문자)에 대한 검색 결과가 아직 표시되지 않습니다. 이미 'Wendy'에 대한 검색 결과를보고 싶지만 'W'라는 글자의 검색 결과가 표시되고 'We'등의 검색 결과가 표시됩니다.
내가 원하는 것은 사용자가 특정 시간 동안 아무 것도 입력하지 않았을 때만 검색을 수행하는 것입니다 (2 초를 생각하고 있습니다). 그렇지 않으면 'Searching'이라는 단어가 표시됩니다. Javascript 메서드의 코드는 아래와 같습니다. 메모와 마찬가지로, 해당 코드는 현재 사용자를 검색하기 위해 작동하지만 지연된 실행을 구현하기 만하면됩니다.
function updateSearchResults() {
if($F('searchString').length > 0){
Element.update($('searchResultsScrollBox'), '<h3>Searching...</h3>');
$('searching').style.display = 'block';
var url = '<c:url value='ajaxFrontGetUsers.html'/>';
var ajax = new Ajax.Updater({success: 'searchResults'}, url,
{method: 'post', parameters: $('searchForm').serialize(true)});
$('searching').style.display = 'none';
}
}
나는 이것이 모두 의미가 있기를 바랍니다. 도움을 줄 수있는 사람을 미리 감사드립니다.