Moteurs côté client et Web

Les plug-ins FormIt utilisent deux moteurs JavaScript distincts :

  • Groupe de fonctions affichant le code HTML (côté Web)

  • Le côté client (FormIt) effectue des appels à FormIt et à son noyau de géométrie.

Ces deux moteurs JavaScript fonctionnent selon des processus distincts.

Côté client (FormIt) et côté Web (HTML)

FormIt exécute plusieurs moteurs JavaScript simultanément :

  • L’application FormIt possède son propre moteur JavaScript

  • Chaque barre d’outils de plug-in possède son propre moteur JavaScript.

  • Chaque groupe de fonctions de plug-in possède son propre moteur JavaScript (Chromium).

Les plug-ins peuvent spécifier l’emplacement de chargement du script JavaScript :

Côté client (FormIt)

Spécifié à l’aide du fichiermanifest.json

Côté Web (HTML)

Spécifié à l’aide du fichier index.html

  • Les scripts côté Web sont chargés à partir de la page Web.

  • Les scripts côté Web peuvent appeler le script JavaScript côté client (FormIt) à l’aide de plusieurs appels asynchrones.

Trois méthodes pour appeler des commandes côté client (FormIt) à partir d’un plug-in Web :

Méthode 1 : FormItInterface.CallMethod

CallMethod prend un nom de fonction et les arguments qui seront exécutés côté FormIt. La fonction transmise sera appelée avec le résultat de l’appel de la fonction.

Avantages :

➕ Pas besoin de await.

Inconvénients :

➖ Un rappel est nécessaire pour obtenir le résultat et s’appelle « who know when ».

➖ Les scripts sont définis à deux emplacements différents.

➖ La logique du plug-in doit être divisée en deux fichiers différents.

Méthode 2 : FormIt.CallJS

*Disponible uniquement dans FormIt 2022.1 et versions ultérieures

CallJS utilise la fonction JavaScript pour un appel côté FormIt et l’objet arguments.json.

Avantages :

➕ Le résultat est disponible en cas de besoin

Inconvénients :

➖ **** Vous devez ajouter await à tous les appels asynchrones. Si vous oubliez, rien ne fonctionnera comme prévu.

➖ **** Potentiellement plus lent en raison de await

Méthode 3 (asynchrone/await)

Avec un appel asynchrone, le côté Web appelle le côté FormIt. Cet appel commence dans un processus, est envoyé à un autre processus, puis le résultat est transmis au processus de départ. C’est pourquoi await est nécessaire.

Seules les API FormIt intégrées peuvent être appelées par défaut.

Avantages :

➕ Le résultat est disponible en cas de besoin.

➕ Permet de combiner tout le code dans un seul fichier JS exécuté côté Web, sans script défini dans manifest.json.

Inconvénients :

➖ **** Vous devez ajouter await à tous les appels asynchrones. Si vous oubliez, rien ne fonctionnera comme prévu.

➖ **** Potentiellement plus lent en raison de await.

Méthode 4 (RegisterAsyncAPI)

*Disponible uniquement dans FormIt 2023.0 et versions ultérieures

Pour appeler une fonction définie par l’utilisateur dans FormIt, la fonction doit être enregistrée. Par exemple :

Côté client (FormIt)

Côté Web (HTML)

Reportez-vous à HelloBlockAsync pour obtenir un exemple.

Avantages :

➕ Le résultat est disponible en cas de besoin.

➕ Permet de combiner tout le code dans un seul fichier JS exécuté côté Web, sans script défini dans manifest.json.

Inconvénients :

➖ **** Vous devez ajouter await à tous les appels asynchrones. Si vous oubliez, rien ne fonctionnera comme prévu.

➖ **** Potentiellement plus lent en raison de await.

Last updated