2011-09-30 6 views
0

데이터 행이 1000k 인 경우 zipcode/city/state처럼 보입니다. 웹 사이트 텍스트 필드에 95101을 입력하면 san jose, ca가 표시됩니다. 텍스트 필드 자동 완성을 완료하십시오.프런트 엔드에서 jQuery aotocomplete를 사용하면서 큰 데이터 소스를 저장하는 방법은 무엇입니까?

전체 우편 번호/도시/주를 미국에 저장하려는 데이터 구조에는 어떤 종류가 있습니까?

아마도 1000k 행입니다. 로컬에 데이터 소스를로드하면 시간 낭비가되는 것 같습니다. JavaScript의 배열에 데이터 소스를 작성하면 배열이 너무 크고 어떤 아이디어입니까?

답변

0

당신은 원격 데이터 소스와의 jQuery UI 자동 완성을 사용할 수 있습니다 - http://jqueryui.com/demos/autocomplete/#remote

발췌 거기에서 :

데이터 소스는 간단한 URL 에 대한 통해 지정 JSON 데이터를 반환하는 서버 측 스크립트입니다 source-option. 또한 minLength-option은 2 으로 설정되어 너무 많은 결과를 반환하는 쿼리를 방지하고 select-event를 사용하여 일부 피드백을 표시합니다. 거기에서

코드 샘플 :

$(function() { 
    $("#birds").autocomplete({ 
     source: "search.php", 
     minLength: 2, 
     select: function(event, ui) { 
      log(ui.item ? 
       "Selected: " + ui.item.value + " aka " + ui.item.id : 
       "Nothing selected, input was " + this.value); 
     } 
    }); 
}); 
+0

JSON을 사용할 경우 매번 1,000k 개의 행을 다운로드해야합니까? – Judy

+0

아니요. 호출하는 웹 서비스는 매개 변수를 취합니다 (우편 번호의 처음 두 자릿수 일 수 있으며 결과와 일치하는 결과 만 필터링 할 수 있음). 답안의 링크를 보지 않으시겠습니까? –

1

당신이 1 개 백만 행을 의미합니까?

서버에서 검색을 수행 할 원격 데이터 소스를 사용하면 적은 수의 행만 반환합니다. 데이터의

예를 들어 jQuery autocomplete remote example

$("#birds").autocomplete({ 
     source: "search.php", 
     minLength: 2, 
     select: function(event, ui) { 
      log(ui.item ? 
       "Selected: " + ui.item.value + " aka " + ui.item.id : 
       "Nothing selected, input was " + this.value); 
     } 
    }); 
0

이러한 엄청난 양의, 난 당신이 원격 호출을 사용하는 대신 지역 배열 또는 객체에 저장하는 것이 좋습니다. 하지만 객체에 저장하는 것이 해시를 생성 할 때 배열에 비해 좋은 옵션이라고 생각합니다.

관련 문제