2009-09-04 7 views
0

私のプロジェクトでは、選択した国を使用して都市をフェッチしています。dojo filteringSelectが非常に遅い

今、私は1カ国に約8000の都市があります。そのため、フィルタリングするためには、それを高速に表示するのに時間がかかります。

以下は、レコードをフェッチしてページに表示するために使用するajax関数です。上記「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

私は

+0

これは問題の可能性があります。いずれにしても、バグを提出することをお勧めします(http://bugs.dojotoolkit.org)。 –

答えて

1

私はdijit.form.FilteringSelectを使って、約6000アイテムのドロップダウンメニューを表示しています。ユーザーの入力時にさまざまな選択を表示/フィルタリングするのに要する時間は非常に長くなります。

多数のアイテム(〜6000)アイテムのタイプ可能なドロップダウンメニューを作成するための修正オプションまたは代替オプションはありますか?

+1

'pageSize = 10'属性を使用することで、Firefoxやその他の最新のブラウザのパフォーマンスを向上させることができました。 IE6とIE7のパフォーマンスはまだ非常に悪いです。 – Kan

+0

問題は道場そのものと思われると思います。 あなたにはありがとうございます。 amar4kintu – amar4kintu

+0

私はむしろそれを州と都市に分けることにします。問題は解決され、使用法ははるかにエレガントであり、また意味があります。 –