2014-10-18 17 views
6

Ben select2'yi 5.000'lik bir veri kümesiyle kullanmaya çalışıyorum.açısal select2, gırtlak veri grubu ile yavaş

Etkileşim, özellikle arama yavaştır. Yakın gelecekte 500.000'den fazla veri setini kullanmam gerekecek.

Bunu nasıl verimli hale getireceğinize dair herhangi bir öneriniz var mı?

Ancak, daha az işlevsellik ve görüntüleme öğeleri olan, bootstrap typeahead ile herhangi bir performans sorunum yok. Ayrıca, arama işlevinin typeahead ile nasıl çalıştığını da bilmiyorum.

İşte 2'yi Seç demo olarak aynı plunker örneği, ama veri http://plnkr.co/edit/RyCTTloW6xp81WvoCzkf?p=preview

<ui-select ng-model="person.selected" theme="select2" ng-disabled="disabled" style="min-width: 300px;"> 
    <ui-select-match placeholder="Select a person in the list or search his name/age...">{{$select.selected.name}}</ui-select-match> 
    <ui-select-choices repeat="person in people | propsFilter: {name: $select.search, age: $select.search}"> 
     <div ng-bind-html="person.name | highlight: $select.search"></div> 
     <small> 
      email: {{person.email}} 
      age: <span ng-bind-html="''+person.age | highlight: $select.search"></span> 
     </small> 
    </ui-select-choices> 
</ui-select> 
+3

Büyük veri setiyle yaptığım görüşe göre, sadece bir yazım hatası kullanmanız gereken bir düşme işlevselliği vermek mantıklı değil, büyük verilerle, kullanıcıya her zaman kullanacağı değerlerle açılan menüde herhangi bir değer olduğunu düşünmüyorum Bir öğeyi seçmek için arama yapın. – PSL

cevap

1

5.000 satırlarla aynı sorun vardı. Ui-select'in performansı gerçekten zayıf. Selectize'i kullanmanızı öneriyorum. Çok daha iyi davranıyor ama bence 500k çok fazla olabilir. Açısal Malzeme Sanal Listeleri yanıt olabilir. O zamanlar sadece birkaç seçenek sunuyor ve sadece bağlamaları günceller.