2016-02-11 19 views
5

AngularJS'de ng-repeat büyük koleksiyonlarını nasıl işlerim?AngularJS'de bir ngRepeat koleksiyonundaki tembel yükleme öğeleri

Kullanıcı başka bir denetleyiciye geçmeye karar verdiğinde, indirme işleminin iptal edilmesini düşünüyorum. Kullanıcı, konum denetleyicisi değiştirmeye karar verdiğinde

<ul class="thumbnails"> 
    <li ng-repeat="photo in photosFound.data track by $index" > 
     <a prettyp class="thumbnail" ng-href="{{domain}}/{{photo.thumb}}" rel="prettyPhoto[main]"> 
      <img class="group1" ng-src="{{domain}}/{{photo.image}}" /> 
     </a> 
    </li> 
</ul> 

150 görüntülerin indirme işlemini iptal etmek bir yolu var mı:

kullandığım resimleri görüntülemek için mi?

+4

Bu, muhtemelen bir "" etiketi DOM – gustavohenke

+3

artık yapılmadığında tarayıcı tarafından otomatik olarak yapıldıktan sonra istekleri önleyemiyor. Daha az sonuç göstermek için sayfalandırma özelliğini kullanın ve tek yönlü – charlietfl

+0

@charlietfl'i kullanarak performansı artırabilirsiniz. ama bir seçenek olarak, 'proxy' taleplerini yerine getirebilecek servis işçisi teknolojisini kontrol etmeye çalışabilirsiniz - https://www.smashingmagazine.com/2016/02/making-a-service-worker/ uygulanabilir – shershen

cevap

0

Kaydırılabilir görünümün dışında hiçbir şeyden vazgeçmeyecek olan ui kaydırıcı (https://github.com/angular-ui/ui-scroll) gibi bir şey kullanabilirsiniz. Bu, ng-yinelemede gerçekten büyük veri kümeleriyle size yardımcı olacaktır.

İkinci sorunuzla ilgili olarak: bir $ söz kullanarak açık $ http isteklerini iptal edebilirsiniz. Bu adam, bunu başarmaya nasıl başladığınızı anlatan oldukça iyi bir iş çıkarıyor. http://odetocode.com/blogs/scott/archive/2014/04/24/canceling-http-requests-in-angularjs.aspx

+0

Bu, henüz uğraşmak zorunda olduğum en karmaşık açısal modül. Cidden, bu nedir? (i = j = ref = index, ref1 = index + count - 1; ref <= ref1? j <= ref1 : j > = ref1; i = ref <= ref1? ++ j: --j) {Bu, kaynak verilerinizi ayarlamak içindir ?! – AlxVallejo

İlgili konular