[Répondu] "alert" cassant l'exécution d'un code JavaScript dans Firefox (ok ailleurs)

Des sites vous refusent l'accès ou ne fonctionnent pas correctement parce que vous y accédez par un logiciel qui n'est pas vraiment en situation de monopole ? Nos m4st3rs évangélistes s'occupent de les remettre dans le droit chemin.
troudhuk
Salamandre
Messages : 43
Inscription : 02 mars 2011, 18:57

[Répondu] "alert" cassant l'exécution d'un code JavaScript dans Firefox (ok ailleurs)

Message par troudhuk »

Bonjour,

Énoncé court :
Existe-t-il un moyen de faire fonctionner ce code sous Firefox aussi bien que sous Chromium et dérivés (c'est-à-dire que la popup "opened" doit apparaître à la fin) ?

Version longue :
Suite à un comportement étrange dans une application s'appuyant sur Firefox, on s'est posé la question suivante (posée avant nous par d'autres) :
https://stackoverflow.com/questions/160 ... websockets

Celui qui répond met un exemple de code pour prouver qu'il n'y a rien à craindre. Mon lien plus haut, c'est le code mis à jour.

Sauf que son code ne fonctionne pas sous Firefox (il prouve qu'il y a un problème : on loupe bien l'événement "Open"). En tâtonnant, j'ai vu que si on commente les alert "wasting time" et "time wasted", même si on rajoute un zéro à la boucle for qui dure alors vraiment longtemps, cette fois on a bien la popup "opened", preuve que le commentaire de StackOverFlow a raison (peu importe du temps qui passe entre la création du canal WebSocket et l'installation de l'event handler, on ne le manquera pas).

D'où ma question : visiblement l'incrustation des deux alert casse ce comportement. Avez-vous connaissance d'une option de Firefox qui permettrait de corriger ça ? Serait-ce un bug ? J'ai joué un peu dans about:config avec divers paramètres mais ça n'a rien changé.

Et la question étendue si on comprend des choses avec ce petit code : à part l'alert, ça peut le faire avec d'autres choses ? Ça pourrait expliquer des bugs aléatoires...

Testé avec Firefox Portable 101.0.1 (installation fraîche)
Dernière modification par troudhuk le 29 juil. 2022, 00:59, modifié 1 fois.
Avatar de l’utilisateur
Mozillons_le_mieux
Gecko
Messages : 66
Inscription : 26 juil. 2018, 20:46

Re: "alert" cassant l'exécution d'un code JavaScript dans Firefox (ok ailleurs)

Message par Mozillons_le_mieux »

Les "alert" de Firefox existent depuis les débuts de Firefox... bien avant l'invention des Websockets, et quand l'asynchronisme était une pratique peu répandue. Leur codage n'a - à ma connaissance - jamais été revu. On ne peut donc normalement rien faire pour contourner l'anomalie de fonctionnement. Les popups "alert", "confirm", sont considérées comme des reliquats du passé. Alert est encore utile (mais à éviter sur les sites grand public et commerciaux). "Confirm" ne devrait pas être utilisé, car non stylable.

Les motorisations style Blink (donc, pour des navigateurs comme Chromium) ont les "alert" codées de façon plus moderne, affichées comme des bandeaux informatifs, et en tenant compte des divers types d'évènements et d'asynchronisme.

Pensez à console.log() pour le débogage. Et sachez que l'on peut même styler les messages de débogages de console.log !
Supprimer ce qui fonctionnait, qui était utile, et qui était apprécié, est une régression. Pas une amélioration !
troudhuk
Salamandre
Messages : 43
Inscription : 02 mars 2011, 18:57

Re: "alert" cassant l'exécution d'un code JavaScript dans Firefox (ok ailleurs)

Message par troudhuk »

Réponse claire, merci. Un peu triste, on pourrait s'attendre à l'inverse, c'est vrai que j'aime bien les alert, pensant que ce sont de petites popups innocentes, rodées, qui ne risquent rien.
En remplaçant les alert par des console.log, ça fonctionne, à part que le premier message n'apparaît qu'en même temps que les autres (mais avec le bon temps).
Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 1 invité