Kann eine ember (-cli) app window.onerror auslösen?

8

Gibt es irgendeine Art von JavaScript-Fehler, die von nicht behandelt wird onerror in einem Ember (-cli ) Anwendung? Mit anderen Worten ist es eine Notwendigkeit, einen Handler window.onerror hinzufügen?

Bei meinen Tests konnte ich keinen Fehler finden, der nicht von Embers Fehler behandelt werden würde. Syntaxfehler sind nicht über den Buildprozess von ember-cli hinausgelaufen.

    
pogopaule 29.01.2016, 15:57
quelle

3 Antworten

2

EmberJS leistet hervorragende Arbeit, um Fehler zu enthalten, die innerhalb seiner Grenzen passieren . Fehler, die durch Ihren Ember-Code verursacht werden, sollten alle in den Ember-spezifischen Handler geleitet werden.

Allerdings ist Browser JavaScript ein kompliziertes Biest. Alle JavaScript-Fehler, die außerhalb von Ember passieren, werden nicht intern erfasst und können nur durch das globale window.onerror angezeigt werden. Einige Beispiele hierfür könnten sein:

  • Unbegrenzte Rückrufe in native Funktionen wie setTimeout und addEventListener
  • Nicht-ember JavaScript-Bibliotheken und Integrationen wie Stripe, Twitter oder Advertisements
  • Browser-Erweiterungsskript, das unvorhersehbar mit dem DOM interagieren kann.

Um ein vollständiges Bild davon zu erhalten, was mit Ihren Besuchern passiert, sollten Sie wahrscheinlich sowohl Ember.onerror als auch window.onerror anhängen und die Berichte an Ihre Protokolle zurücksenden. Auch wenn Sie sich nicht aktiv weiterentwickeln, können Browseränderungen zu plötzlichen Fehlern in Ihrer Anwendung führen. Wie dieser Webkit-Fehler, der dazu führte, dass ember Fehler verursachte . Es gibt gute Möglichkeiten, um Fehler automatisch von Ember-Apps wie TrackJS aufzunehmen.

Disclosure: Ich bin einer der Gründungsentwickler von TrackJS, daher habe ich viele Fehler beseitigt:)

    
Todd Gardner 13.07.2016 21:30
quelle
0

Nach meiner Erfahrung würde ich nicht raten, ein window.onerror förder, wenn Sie einen guten Grund haben, dies zu tun, und Sie wissen, was Sie können tun.

Mein Wissen aller Embers onerror Methoden huckepack auf window.onerror und überschreibt es hat das Potenzial, außer Kraft zu setzen / deaktivieren Sie alle die Fehler in Ihrer Anwendung.

Typischer Fall, ich hatte vor kurzem eine Erfahrung, wo ich bemerkte, dass alle meine js Fehler Protokollierung gestoppt insgesamt zu trösten. Der Grund war, dass ein anderer Entwickler in meinem Team in meine index.html geladen hatte, um ein <script> -Tag einzufügen, das window.onerror für ein Fehlermeldungsskript verwendete. Das Ergebnis war, dass zwingende window litterally alle Embers onerror invalid becuase sie in einem sprudelnden Art und Weise arbeiten.

Ich denke, wenn Sie window.onerror überschreiben wollen, müssen Sie sicherstellen, dass es immer false zurückgibt, damit es die Standardfehlerbehandlung im Browser nicht verhindert.

Siehe: Ссылка

Ich hoffe, dass das zu einem gewissen Grad Klarheit schafft.

    
Grapho 16.03.2016 16:02
quelle
-1

Ember hat ein eingebautes Fehlerereignis, das Sie in Ihren Routen verwenden können

%Vor%

Weitere Informationen: Ссылка

    
TheCompiler 16.03.2016 17:09
quelle

Tags und Links