J'écris un logiciel JavaScript assez volumineux. J'ai besoin de suivre les appels, de consigner les événements, de déboguer les actions, tout en maintenant les performances et la portabilité entre les navigateurs. Web12 et Firebug offrent tous deux un objet console avec des méthodes comme trace(), log(), error(), warning(), etc. Ils sont géniaux, mais que faire quand le navigateur est IE ou Opera? Imaginez que vous ayez une grosse application, vous voulez sûrement voir toutes les initialisations qu'elle fait, les événements qu'elle crée, etc. Toutefois, si je ne fais que les enregistrer, la journalisation ne fonctionnera pas dans les navigateurs qui n'ont pas de console enregistrée dans le DOM. Je pourrais créer un objet emballage:Stratégies pour JavaScript console.log/trace, etc
MyNamespace.Console = {};
MyNamespace.Console.log = function(value) {
if (console!==undefined) {
console.log(value);
}
else {
// What should I do to log events on other browsers?
}
}
Le fait ci-dessus donc pas de problème sur IE/Opera, mais comment puis-je me connecter avec IE (dont on a besoin vraiment vous connecter avec IE!).
De plus, si je plante des journaux partout dans mon application, est-ce que cela ralentit quand ils sont exécutés dans un environnement de production? Devrais-je avoir un switch DEBUG on/off et une simple vérification avant de l'enregistrer si DEBUG === true, alors se connecter?
Qu'en est-il des systèmes comme Closure Compiler, pouvez-vous les faire pour supprimer la journalisation? Que se passe-t-il si une erreur survient dans l'environnement de production et que la journalisation n'a pas eu lieu? Comment déboguez-vous/trouvez-vous le problème? En fait, envoyez-vous des fichiers d'erreur JavaScript (développeur) pour vous assurer que vos clients n'ont pas de problèmes? Comment cela fonctionne-t-il? J'apprécie tous les commentaires/commentaires sur le débogage/connexion avec JavaScript, c'est la première fois que j'écris une application JavaScript énorme, et franchement, je ne suis pas sûr de ce que je devrais faire à ce sujet ... le débogage et la connexion en JavaScript semble un peu inachevé.