Ng-lazyload-image: مهلات المنقلة

تم إنشاؤها على ٦ ديسمبر ٢٠١٦  ·  7تعليقات  ·  مصدر: tjoskar/ng-lazyload-image

عند تشغيل اختبار المنقلة ، سينتهي الأمر مهلة لأي مكون باستخدام توجيه الحمل البطيء. تراقب المنقلة ngZone لتعرف متى تكتمل المهلات والفواصل المعلقة قبل تشغيل مكالمات xhr المعلقة.
في scroll-listener.ts ، يُنشئ .sampleTime(100, scheduler) فاصلاً لن ينتهي أبدًا أثناء اختبار المنقلة. لقد وجدت طريقة لذلك عن طريق إضافة الكود التالي إلى التوجيه

ngAfterContentInit() {
    this.ngZone.runOutsideAngular(() => { // run outside angular
      this.scrollSubscription = getScrollListener(this._scrollTarget)
        .filter(() => this.isVisible())
        .take(1)
        .switchMap(() => this.loadImage(this.lazyImage))
        .do(() => this.setImage(this.lazyImage))
        .finally(() => this.setLoadedStyle())
        .subscribe(() => this.ngOnDestroy(),
        error => {
          this.setImage(this.errorImg || this.defaultImg);
          this.ngOnDestroy();
        });
    });
  }

وفقًا لهذا https://github.com/angular/protractor/issues/3349#issuecomment -232253059 تراقب المنقلة منطقة ngZone الرئيسية ، لذلك إذا قمنا بتشغيل الفاصل الزمني للخارج منها ، فقم بتشغيل المنقلة بنجاح. لست متأكدًا من كيفية عمل ذلك مع اختبارات المنقلة في هذا المشروع ولكن يمكنني محاولة تقديم طلب سحب عندما تسنح لي الفرصة.

التعليق الأكثر فائدة

بالتأكيد ، سأرى ما إذا كان بإمكاني الحصول على واحدة في غضون الأسبوع المقبل :)

ال 7 كومينتر

شكرا لملاحظاتك.
ومع ذلك لا يمكنني إعادة إنتاج هذا. أنا أستخدم المنقلة في هذا المشروع وستعمل اللحامات بشكل جيد. ولكن بعد قولي هذا ، قد يكون من الجيد استخدام ngZone.runOutsideAngular لتحسين الأداء. ولكن إذا كنا نستخدم ngZone.runOutsideAngular ، فسنحتاج إلى استخدام ChangeDetectorRef بعد تحميل الصورة الكسول ، أليس كذلك؟ لذا يعرف الزاوي أن العرض يحتاج إلى العرض.

بما أنني لا أستطيع إعادة إنتاج هذا ومن اللحامات أن يكون لديك حل عملي. هل تريد تقديم PR؟

بالتأكيد ، سأرى ما إذا كان بإمكاني الحصول على واحدة في غضون الأسبوع المقبل :)

لقد قمت بإنشاء نسخة جديدة من البرنامج المساعد. هل يمكنك تجربتها: npm install [email protected] لترى ما إذا كانت ستصلح المشكلة؟

بالتأكيد! سأجربه اليوم

إغلاق هذا. اسمحوا لي أن أعرف إذا كنت لا تزال تحصل على المهلات.

tjoskar اختبر هذا للتو اليوم وهو يعمل ، شكرًا لك على الإصلاح! :)

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات