2011-10-13 3 views
6

I는 상당히 큰 JSON 오브젝트 (1.2MB)를 사용하여 두 개의 테스트 케이스가 : 제 1 내지 제jQuery를 자동 완성 소스 특성 함수() {} 매우 느리다으로

source: data 

source: function (request, response) { 
       response(data); 
      } 

을 자동 완성 기능이 예상대로 작동합니다.

두 번째 경우에는 자동 완성 기능이 간혹 작동하며 속도가 매우 느립니다. 때로는 브라우저가 3-4 초 동안 "응답하지 않음"으로 정지 한 후 다시 해제됩니다.

첫 번째 경우와 다른 두 번째 경우는 어떻게됩니까?

(필자는 어떤 시점에서이 기능에 몇 가지 필터링 로직을 적용 할 예정이지만 현재로서는이 테스트를하고 있습니다.)

답변

5

데이터 세트를 로컬 객체로 전달할 때 필터링되지만 콜백을 사용할 때 필터링되지 않습니다 (프로그래머의 책임 임).

source: data 자동 완성을 사용하여 당신을 위해 설정 한 결과를 필터링 :

response($.ui.autocomplete.filter(array, request.term)); 

더 필터링, 따라서 페이지가 JSON의 1.3MB에 대한 마크 업을 생성 적용되지되고있는 콜백 source: function(request, response) { response(data) }를 사용하여.

자동 완성 기능은 로컬 소스에서 데이터를로드 할 때 데이터를 캐시합니다. 원격으로 검색하면 기본적으로 캐시되지 않습니다.

이 jQuery UI 자동 완성 문서는 동작을 설명하고 원격 호출에 대한 캐싱을 구현하는 방법을 제안합니다.

http://jqueryui.com/demos/autocomplete/#remote-with-cache

+0

당신은 콜백을 사용하는 것은 원격 데이터 소스로 처리됩니다 것을 제안하고 있습니까? –

+0

죄송합니다. 질문에 대한 오해를했습니다. 나는 정답이라고 생각하는 업데이트를 게시합니다. –

+0

감사합니다. Jeremy. 그건 내 질문에 훌륭하게 대답한다. –