Import d'un fichier js externe dans un widget sans timeout et sans jquery

Hello,

Quelques tests rapides et ça me semble plutôt concluant :wink:
Parfait, ça évitera de devoir modifier tous les widgets et on y gagne en évitant les timeouts et les doublons de js comme actuellement !

Hello,

J’ai pas tout compris de vos échanges. Au final la modification du core proposé par @Phpvarious permettrait de ne plus avoir à utiliser de setTimeout et sans utilisation de la fonction de @noodom ou bien il la faudra quand même ?

C’est bien ça :

  • Les widgets actuels peuvent rester identiques avec des includes classiques de js :
    <script src="core/php/getJS.php?file=3rdparty/highstock/modules/solid-gauge.js"></script>
  • Si tu as plusieurs équipements lié à un même widget (ou même différents widgets qui incluent les fichiers js) dans ton dashboard ou ton design, tu n’auras pas les fichiers js ajoutés dans ta page courante Jeedom autant de fois que tu as d’équipements liés à ce(s) widget(s), mais un seul include par fichier js.
  • Tu n’as plus besoin de déclarer un timeout (avec un délai arbitraire et « aléatoire ») pour attendre le chargement du fichier js avant d’afficher ton équipement lié au widget
  • Tu pourras ta passer du jquery pour les includes des fichiers js

Merci pour le résumé, c’est très clair.

Restera à bien arriver à suivre quand cette proposition de code finira par passer en stable histoire de modifier son plugin en conséquence puisque pour ma part j’ai commencé (et vais bientôt finir) à incorporer ta fonction :crazy_face:

Oui, il risque d’y avoir quelques transitions à gérer…
Avec les users sur d’anciennes versions de jeedom ou de widgets… :partying_face:
L’avantage de la modification côté core, c’est que ça ne modifie pas les widgets actuels. L’avantage de la modification côté widget, c’est que ce n’est pas dépendant du core (mais ça reste plus court terme).

On peut pas tout avoir et tout compatible en même temps :crazy_face:

Hello,

En faite, j’ai pas PR pour le moment, car j’aurai préféré que la team se manifeste sur ce sujet.
Même si cela fonctionne, j’ai tout de même l’impression que j’ai fait un bricolage, mes connaissances me permette pas de faire plus « propre ».
@noodom a bien résumé ce qu’apporterai cette modif, en revanche, il est possible que cela ralentisse l’affichage du design, car tout devient synchrone.
N’utilisant que très peu les design, je peux pas le constater.

Et il y a aussi la fonction domUtils.DOMparseHTML, qui est utilisé seulement en design, me fait pensé quelle a été créée pour une raison bien spécifique, et qu’il y a peut-être un truc qui m’échappe…