2010-08-19 16 views
1

Nous avons eu des rapports de problèmes avec notre caisse où les clients obtiennent js exceptions (nous supposons) afin qu'ils ne puissent pas commander.piégeage et la journalisation des exceptions javascript "bugfoot" de manière significative

Peu importe le nombre de bancs de test que nous utilisons, nous n'avons pas réussi à recréer les problèmes, mais c'est le but de l'exercice.

J'ai installé une fonction de piégeage d'erreur simple qui travaille basée autour de:

window.onerror = function(message, url, line, chr) { 
    new Request({ 
     url: "/errorTrap.php", 
     data: { 
      m: message, 
      u: url, 
      l: line, 
      c: chr 
     }, 
     method: "get", 
     onComplete: function() { 
      // perhaps save the rendered html source via a second POST request?  
      alert("done"); 
     } 
    }).send(); 
    return true; 
}; 

Effectivement, en une seule semaine, je viens de recevoir des e-mails 8 des exceptions piégées.

Malheureusement, la page de paiement est très dynamique. Il contient un peu de javascript en ligne, beaucoup de fichiers et de classes .js externes et certains sont évalués par le biais de réponses ajax. La longueur de la page varie en fonction des articles dans le panier, des options d'expédition, des informations du carnet d'adresses et ainsi de suite. C'est pourquoi voir une exception 'Objet attendu' à la ligne 253 signifie très peu car cela ne m'aide pas à comprendre quelle fonction a déclenché l'exception ou à fournir le contexte du bloc de script/code source qui va avec.

Je pensais faire une deuxième requête XHR qui peut déposer le innerHTML de document.body dans un gestionnaire ajax et ainsi fournir une numérotation de lignes et un contenu qui pourraient avoir causé le problème.

Est-ce la seule amélioration dans le traçage que je peux faire? Y a-t-il des solutions pour ce "là-bas"?

Voici le jsFiddle que l'exception démos manipulation http://www.jsfiddle.net/dimitar/8hqrY/

+0

duplication possible de [Existe-t-il des outils pour signaler automatiquement les erreurs du JavaScript côté client?] (Http://stackoverflow.com/questions/8528005/are-there-any-tools-for-automatically-reporting-errors -de-client-côté-javascri) –

Répondre

0

Eh bien, le débogage d'un problème est toujours comme ça. Soit en allant là-bas, en voyant le problème et en y abordant des outils de débogage ou en obtenant des preuves, devinettes, obtenant plus de preuves et ainsi de suite, Sherlok Holmes: ^)

En plus de l'arborescence DOM, vous pouvez obtenir la pile JS trace: A Javascript stacktrace in any browser.