Question

Lorsque j'utilise le Web, les erreurs d'exécution (généralement javascript) sont régulièrement signalées via des fenêtres contextuelles. Cela peut rendre l'expérience utilisateur vraiment insatisfaisante sur de nombreux sites Web par ailleurs excellents et me fait également me demander à quelles fonctionnalités je n'ai pas accès.

Pourquoi est-ce un problème si courant? Est-ce dû à un manque de tests ou s'agit-il de problèmes de compatibilité de navigateur? Que peut-on faire pour minimiser ce genre de problème?

Incidemment, l'option "Afficher une notification de chaque erreur de script" n'est pas cochée.

Était-ce utile?

La solution

C'est un certain nombre de problèmes.

  1. De nombreux créateurs de pages Web copient et collent du code JavaScript à partir du Web. Ils ne sont pas des programmeurs et peuvent ne pas apprécier les nuances du langage.
  2. Manque de bons frameworks de test (du moins je n'en connais aucun). Pour Java, nous avons JUNIT et .NET NUNIT, etc. Il est difficile d’automatiser les tests JavaScript à l’heure actuelle.
  3. Support IDE médiocre. Jusqu'à récemment, la plupart des IDE faisaient un travail médiocre en JavaScript. Maintenant, je vois plus de soutien, mais je ne suis toujours pas du genre à avoir pour les langues de base.

Autres conseils

Je le attribue à un manque de tests.

Il est facile de faire des erreurs en JavaScript. Jusqu'à récemment avec Aptana, il n'y avait pas beaucoup de bons outils pour coder JavaScript. N'ayant pas l'avantage de la vérification ou de la compilation de la syntaxe, une petite erreur de frappe peut en faire des pages. Au-delà de cela, il est un temps où un code qui fonctionne correctement dans un navigateur provoque une erreur dans un autre. Par exemple, j'ai vu un plugin jQuery qui ne fonctionnait pas dans IE, mais il fonctionnait bien dans tous les autres navigateurs. Il s'est avéré qu'il s'agissait d'une variable déclarée sans le mot clé 'var'. Firefox et Safari ne posaient pas de problème, IE non plus. Il est donc possible que celui qui a écrit le code ne sache même pas que c'était un problème.

Oui, le problème est généralement le test. La plupart des développeurs sérieux essaieront de tester leur page Web dans de nombreux navigateurs, mais comme il existe de nombreux navigateurs et versions, vous ne pouvez pas vraiment les tester tous.

Je teste généralement lorsque je conçois avec Opera et Firefox, et mon collègue qui a utilisé un Mac l’a également testé dans Safari; Puis de temps en temps, démarrez une machine Vista (je suis sous Linux et IE pour Linux n'est pas fiable pour copier tout comportement étrange d'IE) et testez-le sur IE (généralement en version 7 et 8 bêta). Je recommanderais à tout développeur Web pas de concevoir avec IE! Les sites Web qui ont le plus d'erreurs sont évidemment "conçus pour IE". parce qu'ils fonctionnent à peine dans les autres navigateurs et génère plus d'erreurs. Si vous concevez en utilisant les normes et testez en utilisant des navigateurs compatibles tels qu'Opera, Firefox et Safari, ajoutez ensuite les horribles hacks pour IE de préférence en utilisant commentaires conditionnels (bien que ce soit non standard et propriétaire, il est heureusement et correctement considéré comme recommandé par les vrais navigateurs, donc vous avez gagné " t casser le code de travail) vous avez moins de problèmes.

Une autre raison des erreurs est qu’on utilise des frameworks conçus pour contourner les différences de navigateur et, en tant qu’effet secondaire, ou peut-être simplement à cause d’un bogue, des messages d’erreur apparaissent dans certains navigateurs. Je n’ai certainement pas le temps de fixer un cadre pour supprimer un message d’erreur, et à moins que je ne puisse contourner le problème et que cela fonctionne de toute façon, je dois ignorer les messages d’erreur, éventuellement faire un rapport et espérer qu’il soit corrigé la prochaine version (ou même mieux espère que IE cesse soudainement et par magie d'exister:)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top