وصف المشكلة
إذا كنت تستخدم علامة مع نافذة معلومات مرئية - ينمو استخدام وحدة المعالجة المركزية بنسبة تصل إلى 100٪ من النواة. تم اختباره مع Chrome.
خطوات إعادة إنتاج وعرض بسيط للمشكلة
http://plnkr.co/edit/q0ttx1XbTCnB4DFujtRV؟p=preview
خطوات التكاثر:
السلوك الحالي
يستخدم Marker الذي يحتوي على نافذة معلومات مفتوحة المزيد والمزيد من وحدة المعالجة المركزية بمرور الوقت
السلوك المتوقع / المطلوب
استخدام ثابت لوحدة المعالجة المركزية
angular2 & angular2-google-maps الإصدار
2.1.1 و 0.16.0
معلومات أخرى
نعم فعلا. لقد وجدت نفس المشكلة.
وأنا أستخدم angular2 أيضًا.
والسبب هو أنه عند فتح نافذة المعلومات ، ستكتشف الصفحة التغيير مرارًا وتكرارًا ، مثل التكرار الحلقي. لذلك ستتم إعادة رسم الصفحة مرارًا وتكرارًا. عجلوا. إنها قضية كبيرة.
أي تحديث / تقدم بشأن هذه المسألة؟ تضمين التغريدة
لقد وجدت حلاً هنا: https://github.com/angular/angular/issues/10883#issuecomment -240423378
إذن ما فعلته هو استدعاء infoWindow.open () / close () خارج Angular لتجنب اكتشافات التغيير:
map.component.html
<div *ngFor="let property of _properties">
<agm-marker [latitude]="property.Lat"
[longitude]="property.Lng"
[iconUrl]="_markerIconUrl"
(mouseOver)="_infoWindowOpen($event, infoWindow);"
(mouseOut)="_infoWindowClose($event, infoWindow);">
</agm-marker>
</div>
...
<agm-info-window #infoWindow>
</agm-info-window>
map.component.ts
import { Component, OnInit, NgZone } from '@angular/core';
...
constructor(private _zone: NgZone) {...}
...
private _infoWindowOpen(mouseEvent: any, infoWindow: any) {
infoWindow.hostMarker = mouseEvent.marker;
this._zone.runOutsideAngular(() => {
infoWindow.open();
});
}
...
private _infoWindowClose(mouseEvent: any, infoWindow: any) {
this._zone.runOutsideAngular(() => {
infoWindow.close();
});
}
تم وضع علامة على هذه المشكلة تلقائيًا على أنها قديمة نظرًا لعدم وجود نشاط حديث لها. سيتم إغلاقه إذا لم يحدث أي نشاط آخر. شكرا لمساهماتكم.
التعليق الأكثر فائدة
لقد وجدت حلاً هنا: https://github.com/angular/angular/issues/10883#issuecomment -240423378
إذن ما فعلته هو استدعاء infoWindow.open () / close () خارج Angular لتجنب اكتشافات التغيير:
map.component.html
map.component.ts