2009-09-04 4 views
0

내 프로젝트에서 선택한 국가를 사용하여 도시를 가져 왔습니다.dojo filteringSelect가 매우 느립니다.

이제 1 개 국가에 약 8000 개의 도시가 있으며, 그 때문에 filteringSelect에 시간이 많이 걸립니다.

다음은 레코드를 가져 와서 내 페이지에 표시하는 데 사용하는 아약스 함수입니다.

위 'GetCitiesForCountry.action'에서
function GetCities(){ 
    dojo.xhrPost({ 
    url: 'GetCitiesForCountry.action', 
    load: getCityCallback, 
    error: getCityError, 
    content: {countryId: dijit.byId('cmbcountryid').value } 
    }); 
} 

function getCityCallback(data,ioArgs) { 
    //alert(data); 
    dijit.byId('cmbcityid').destroy(); 
    dojo.byId('td_city').innerHTML = data; 
    dojo.parser.parse(); 

} 

countryId을하고 그 나라의 모든 도시를 가져옵니다 및 도시 콤보를 작성하고 그것을 반환합니다.

getCityCallback 함수에서 innerHTML을 사용하여 리턴 된 콤보 박스를 각각의 td에 배치했습니다.

이 모든 것이 정상적으로 작동합니다.

그러나 fiteringSelect의 드롭 다운 버튼을 클릭하면 드롭 다운 목록을 표시하는 데 약 5-6 초가 걸립니다. 이유가 없습니다.

아무도 도와 줄 수 있습니까?

충분히 빠르게 만들 수있는 방법이 있습니까?

미리 감사드립니다.

+0

"

+0

ItemFileReadStore가 아닌

+0

그게 문제 일 수 있습니다. 어쨌든 나는 버그 (http://bugs.dojotoolkit.org)를 제출할 것을 제안한다. –

답변

1

약 6000 개 항목의 드롭 다운 메뉴에 dijit.form.FilteringSelect을 사용하고 있습니다. 사용자가 입력 할 때 다양한 선택을 표시/필터링하는 데 걸리는 시간은 매우 깁니다.

많은 수의 항목 (~ 6000)이있는 입력 가능한 드롭 다운 메뉴를 만들기위한 수정 또는 대체 옵션이 있습니까?

+1

'pageSize = 10'속성을 사용하여 Firefox 및 기타 최신 브라우저의 성능을 향상시킬 수있었습니다. IE6 및 IE7의 성능은 여전히 ​​매우 나빴습니다. – Kan

+0

문제는 도장 자체에있는 것 같아요. 감사합니다. amar4kintu – amar4kintu

+0

나는 이것을 국가와 도시로 나누고 싶다. 문제는 해결되었고 훨씬 더 사용법이 우아하고 그것도 의미가 있습니다. –