2012-01-27 2 views
0

도시를 입력하는 데 사용되는 asp.net 웹 양식 페이지의이 텍스트 상자가 있습니다. 일부 텍스트를 입력하면 페이스 북에서 일치하는 결과를 얻는 것처럼 제안을 제공합니다.ajax를 사용하여 위치 입력에 대한 검색 결과를 찾으십시오.

나는 이것을 구현하기 위해이 두 가지 방법을 시도했다.

  1. 먼저 onTextChanged 이벤트와 AJAX를 사용하여 텍스트 상자가 포커스를 잃을 때만 작동한다는 것을 알았습니다. 나는 당신이 타자를 치는 때 일할 해결책을 원했다. 장점은 데이터베이스를 사용할 수 있었고 프로세스에서 xml 파일이 전송되지 않기 때문에 빠를 것입니다.

2.i는 js를 사용하여 클라이언트 측에서 ajax를 사용했습니다. 그러나 문제는 xml이 도시를 포함하고 있다는 것입니다. 국가는 거대한 30MB 파일입니다. 그래서 그것을 사용하는 것은 불가능 했으므로 큰 알파벳에서 26 개의 작은 xml 파일을 만들겠다고 생각했지만 여전히 실제로 사용하기에 충분히 큰 것입니다. 이제는 처음 두 알파벳이있는 도시가 들어있는 26 * 26 파일을 사용할 계획입니다.하지만 원하는대로 할 수있는 비효율적 인 방법이라고 생각합니다.

다른 효과적인 방법이 있습니까? 최선의 방법은 가능한 경우 데이터베이스를 사용하는 것입니다.

답변

0
  1. 대신 onkeypress 및/또는 onkeyup 이벤트를 사용해야합니다. 무료로 제공되는 플러그 앤 플레이 자동 완성 구성 요소가 있다는 것을 알고 계셨습니까? 예 : http://jqueryui.com/demos/autocomplete/

  2. JSON! 훨씬 더 콤팩트합니다. 아마 그 데이터의 크기에 30-40 %를 절약 할 것입니다. 작동시키기 위해 전체 데이터 세트를 전달할 필요가 없다는 것을 알고 계셨습니까? 데이터를 서버에 저장 (예 : 데이터베이스에 저장하거나 웹 서버에 캐시하여 빠른 액세스와 적은 데이터베이스 트래픽) 클라이언트가 입력 한 문자를 기반으로 한 번에 작은 데이터 집합 만 가져 오게 할 수 있습니다. 그 JQuery UI 자동 완성 기능을 지원합니다.


당신이 JQuery와 및 JQuery와 UI를 (받아 들일 수없는 대답을 할 것이다 싶지 않다), 나는이 일을 포함하여, 다른 무료 대안 확신가있어 사용할 수없는 경우 : http://www.asp.net/ajaxLibrary/AjaxControlToolkitSampleSite/AutoComplete/AutoComplete.aspx

관련 문제