Donnerstag, 16. Oktober 2008

Event-Handler zum loggen von JavaScript-Fehlern

Wie mit JavaScript-Fehler auf einer Website umgehen? Eine Lösung sieht so aus, daß ein onerror-Event-Handler global alle JavaScript-Fehler behandelt und diese auf dem Server loggt. Dieses Logging geschieht dann ausschließlich im Produktiv-Modus der Website - während der Entwicklung werden die Fehler nicht behandelt und erscheinen als entsprechende Meldung im Browser oder in der Firebug-Konsole. Das Logging wiederum ist so gelöst, daß eine 1x1 Pixel große transparente Gif-Grafik vom Server geladen wird. Diesem Aufruf werden dann die zu loggenden Daten (Fehlermeldung, Seite, Zeilennummer, User-Agent) mitgegeben. Das Prinzip wird bei Wikipedia erklärt.
Schaut man sich die geloggten Fehler an, erkennt man schnell, daß sich diese teilweise nicht in der Entwicklungsumgebung reproduzieren lassen. Ursachen dafür können ungewöhnliche Browser sein, oft gepaart mit ganz besonderen Umständen oder Bedienungseigenarten durch den User. Das heißt, neben durchaus nachvollziehbaren und behandelbaren Fehlern gibt es auch immer ein gewisses Fehler-Grundrauschen, mit dem man einfach leben muß.
Auffällig ist dabei, daß es in gewisser Regelmäßigkeit zu einem Fehler kommt, der ebenfalls zu diesem Grundrauschen zu zählen ist. Die Fehlermeldung lautet immer "Error loading script" und ist eine besondere Meldung des Firefox. Was es damit auf sich hat, kann hier nachgelesen werden. Da dieser Fehler ca. die Hälfte aller geloggten Fehler ausmacht, ohne daß man ihn zuverlässig verhindern kann, habe ich ihn heute durch eine entsprechende Abfrage vom Logging ausgeschlossen.
Das Thema Fehlerbehandlung läßt sich beliebig ausbauen. Es ist denkbar, die geloggten Daten in einem Tool bereitzustellen, daß es erlaubt, diese auf bestimmte Projekte, Seiten oder Fehlermeldungen einzuschränken. Auch eine automatische Benachrichtigung per E-Mail bei einer ungewöhnlich großen Anzahl auftretender Fehler wäre denkbar. Letztendlich könnte man die Fehler auch in einer Art Live-Ticker nachverfolgbar machen. Die Fehler würden dann ohne Verzögerung durch Techniken wie Comet direkt an eine Webseite oder ein Desktop-Widget kommuniziert werden.

Kommentare

Ansicht der Kommentare: (Linear | Verschachtelt)
Noch keine Kommentare

Kommentar schreiben


Standard-Text Smilies wie :-) und ;-) werden zu Bildern konvertiert.

Um maschinelle und automatische Übertragung von Spamkommentaren zu verhindern, bitte die Zeichenfolge im dargestellten Bild in der Eingabemaske eintragen. Nur wenn die Zeichenfolge richtig eingegeben wurde, kann der Kommentar angenommen werden. Bitte beachten Sie, dass Ihr Browser Cookies unterstützen muss um dieses Verfahren anzuwenden.
CAPTCHA

 
 

Blog abonnieren

RSS 2.0 Feed

Suche

Kalender

Zurück Februar '12 Vorwärts
Mo Di Mi Do Fr Sa So
    1 2 3 4
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29        

Verwaltung des Blogs

Blogroll

Projects/Web

vCard

  • Nico Steiner
  • www.nicosteiner.de
  • Karlsruhe/Germany
  • Senior Frontend-Developer at 1&1