사용자가 문자를 입력 할 수있는 텍스트 상자가 있으며 제안 상자가 열립니다. 키 업 이벤트에서 이벤트를 발생 시켰습니다. 비동기 호출이 시작된 후에 타이머가 설정되고 비동기 호출이 성공하면 제안 목록이로드됩니다. 문제는 문자 입력을 시작하면 브라우저의 로딩 기호가 나타나고 비동기 호출이 성공적으로 반환되고 제안 사항이 표시 될 때까지 텍스트 상자에 더 이상 문자를 입력 할 수 없다는 것입니다. 요점은 호출이 async이면 브라우저가 UI에서 이벤트를 차단하는 이유입니다.GWT 비동기 호출 UI 차단
다음은 코드입니다. 화재 이벤트는 비동기 호출을 호출하고 화재 종료 이벤트 메시지를 인쇄합니다. 따라서 비동기 호출이 차단되지 않습니다. 공공 무효 showSuggestions (최종 문자열 쿼리) {
ArrayList<PCTSuggestion> list;
System.out.println("Show Suggestions");
if (query.length() > 0) {
GWT.log(query);
list = cacher.getCachedvalues(query);
//list = new ArrayList<PCTSuggestion>();
if(list != null) {
if(!isTabOut() || !isBlurred()) {
display.showSuggestions(PCTSuggestBox.this, list, true, isAutoSelectEnabled(), suggestionCallback);
} else {
display.hideSuggestions();
}
} else {
this.fireEvent(new NewSuggestionEvent(query, limit));
System.out.println("End of Fire Event");
}
//display.showSuggestions(PCTSuggestBox.this, null, true, isAutoSelectEnabled(), suggestionCallback);
} else {
display.hideSuggestions();
}
}
이벤트 핸들러에서 비동기 호출 완료를 차단하고 있습니까? 실제 코드 중 일부를 공유 할 수 있습니까? – bobbymcr