2011-03-16 84 views
0

將3000個值加載到dijit.form.select控件需要更長的時間。即使有500個值,瀏覽器也會被掛起。如何克服這個問題?dijit.form.select下拉菜單很慢

任何援助將非常感激。

謝謝, Karthihck k。

+0

哪個Dojo版本?哪個瀏覽器?你如何填補選擇?你如何生成選擇? – mrtom 2011-03-16 20:02:08

回答

1

加載3,000的任何東西總是會變得很慢。

雖然有扭曲的方法來克服這個限制,但它可能不值得你的用戶肯定是而不是要滾動通過3000項選擇一個!

我建議你將這個下拉列表分成兩個(或三個)級別,每個級別的選擇不超過20-30個。在我自己的一個項目中,有數千個列表項目,我不得不與四個級別,否則性能會變得糟糕透頂。

如果您只有一個長列表可以使用,請考慮將其按起始字母拆分爲26個組,如電話列表。至少你每組只有100-200。

現在,如果你真的要加載這麼長的名單,考慮不使用dijit.form.Select因爲它只是爲<select>標籤的簡單包裝。您實際上一次插入一個<option>標籤,導致性能下降。你有兩個選擇:

  1. 創建的<option>標籤列表中自己脫線,然後插入<select>元素一氣呵成。
  2. 改爲考慮dijit.form.FilteringSelect

現在,我絕對不認爲支持上述做法。你已被警告!

+0

IBM Rational ClearQuest使用非常奇怪的分頁選擇小部件。這不是很好 – Marcelo 2011-03-17 03:40:24