Angular App зависает как в Edge, так и в Firefox - PullRequest
0 голосов
/ 09 сентября 2018

Я недавно работал над угловым приложением. Он хорошо работает во всех браузерах, которые можно найти как на мобильных устройствах, так и на ПК, кроме Edge и Firefox. И Edge, и Firefox зависают без какого-либо вывода на консоль. Firefox сообщает мне через некоторое время, что страница зависла, и дает мне возможность завершить сценарий. Затем на консоль выводится следующее:

Error: Script terminated by timeout at:
__spread@http://localhost:4200/vendor.js:86417:14
debugCheckNoChangesNode@http://localhost:4200/vendor.js:49939:38
debugCheckRenderNodeFn@http://localhost:4200/vendor.js:49893:13
View_HeaderComponent_7/<@ng:///AppModule/HeaderComponent.ngfactory.js:187:5
debugUpdateRenderer@http://localhost:4200/vendor.js:49882:12
checkNoChangesView@http://localhost:4200/vendor.js:49237:5
callViewAction@http://localhost:4200/vendor.js:49474:21
execEmbeddedViewsAction@http://localhost:4200/vendor.js:49457:17
checkNoChangesView@http://localhost:4200/vendor.js:49236:5
callViewAction@http://localhost:4200/vendor.js:49474:21
execComponentViewsAction@http://localhost:4200/vendor.js:49436:13
checkNoChangesView@http://localhost:4200/vendor.js:49238:5
callViewAction@http://localhost:4200/vendor.js:49474:21
execComponentViewsAction@http://localhost:4200/vendor.js:49436:13
checkNoChangesView@http://localhost:4200/vendor.js:49238:5
callWithDebugContext@http://localhost:4200/vendor.js:50146:22
debugCheckNoChangesView@http://localhost:4200/vendor.js:49827:12
./node_modules/@angular/core/fesm5/core.js/ViewRef_.prototype.checkNoChanges@http://localhost:4200/vendor.js:47648:55
./node_modules/@angular/core/fesm5/core.js/ApplicationRef.prototype.tick/<@http://localhost:4200/vendor.js:43378:62
./node_modules/@angular/core/fesm5/core.js/ApplicationRef.prototype.tick@http://localhost:4200/vendor.js:43378:17
next/<@http://localhost:4200/vendor.js:43268:99
./node_modules/zone.js/dist/zone.js/</ZoneDelegate.prototype.invoke@http://localhost:4200/polyfills.js:7433:17
onInvoke@http://localhost:4200/vendor.js:42619:24
./node_modules/zone.js/dist/zone.js/</ZoneDelegate.prototype.invoke@http://localhost:4200/polyfills.js:7432:17
./node_modules/zone.js/dist/zone.js/</Zone.prototype.run@http://localhost:4200/polyfills.js:7183:24
./node_modules/@angular/core/fesm5/core.js/NgZone.prototype.run@http://localhost:4200/vendor.js:42533:16
next@http://localhost:4200/vendor.js:43268:69
./node_modules/@angular/core/fesm5/core.js/EventEmitter.prototype.subscribe/schedulerFn<@http://localhost:4200/vendor.js:42350:36
./node_modules/rxjs/_esm5/internal/Subscriber.js/SafeSubscriber.prototype.__tryOrUnsub@http://localhost:4200/vendor.js:69383:13
./node_modules/rxjs/_esm5/internal/Subscriber.js/SafeSubscriber.prototype.next@http://localhost:4200/vendor.js:69321:17
./node_modules/rxjs/_esm5/internal/Subscriber.js/Subscriber.prototype._next@http://localhost:4200/vendor.js:69254:9
./node_modules/rxjs/_esm5/internal/Subscriber.js/Subscriber.prototype.next@http://localhost:4200/vendor.js:69229:13
./node_modules/rxjs/_esm5/internal/Subject.js/Subject.prototype.next@http://localhost:4200/vendor.js:68994:17
./node_modules/@angular/core/fesm5/core.js/EventEmitter.prototype.emit@http://localhost:4200/vendor.js:42334:54
checkStable@http://localhost:4200/vendor.js:42588:13
onLeave@http://localhost:4200/vendor.js:42655:5
onInvoke@http://localhost:4200/vendor.js:42622:17
./node_modules/zone.js/dist/zone.js/</ZoneDelegate.prototype.invoke@http://localhost:4200/polyfills.js:7432:17
./node_modules/zone.js/dist/zone.js/</Zone.prototype.runGuarded@http://localhost:4200/polyfills.js:7196:28
./node_modules/zone.js/dist/zone.js/</Zone.prototype.wrap/<@http://localhost:4200/polyfills.js:7174:24

У меня есть все полифилы.

Дело в том, что он работает во всех браузерах, включая IE, а не Firefox & Edge. Это заставляет меня задуматься, что не так. Приложение довольно большое, поэтому его не стоит включать или удалять.

Есть идеи?

1 Ответ

0 голосов
/ 11 сентября 2018

После долгих отладок я наконец-то нашел причину зависания. Я использовал API MutationObserver, который оказался причиной зависания.

...