Engines auf der Client- und Web-Seite

FormIt-Plugins verwenden zwei unterschiedliche JavaScript-Engines:

  • Die Gruppe, die den HTML-Code anzeigt (Web-Seite)

  • Die Client-Seite (FormIt) sendet Aufrufe an FormIt und den Geometrie-Kernel.

Diese beiden JavaScript-Engines arbeiten in unterschiedlichen Prozessen.

Client-Seite (FormIt) und Web-Seite (HTML)

FormIt führt mehrere JavaScript-Engines gleichzeitig aus:

  • Die FormIt-Anwendung verfügt über eine eigene JavaScript-Engine.

  • Jeder Plugin-Werkzeugkasten verfügt über eine eigene JavaScript-Engine.

  • Jede Plugin-Gruppe verfügt über eine eigene JavaScript-Engine (Chromium).

Plugins können festlegen, wo JavaScript geladen wird:

Client-Seite (FormIt)

Durch manifest.json angegeben

Web-Seite (HTML)

Durch index.html angegeben

  • Web-Seiten-Skripte werden von der Webseite geladen.

  • Web-Seiten-Skripte können JavaScript auf der Client-Seite (FormIt) mit mehreren asynchronen Aufrufen anrufen.

Drei Methoden zum Aufrufen von Client-Seiten-Befehlen (FormIt) von einem webbasierten Plugin:

Methode 1: FormItInterface.CallMethod

CallMethod verwendet einen Funktionsnamen und die Argumente, die auf der FormIt-Seite ausgeführt werden. Die übergebene Funktion wird mit dem Ergebnis des Funktionsaufrufs aufgerufen.

Vorteile:

➕ Kein await erforderlich

Nachteile:

➖ Ein Rückruf ist erforderlich, um das Ergebnis zu erhalten. Dieser erfolgt "wann auch immer".

➖ Skripte werden an zwei verschiedenen Stellen definiert.

➖ Plugin-Logik muss in zwei verschiedene Dateien aufgeteilt werden.

Method 2: FormIt.CallJS

*Nur in FormIt 2022.1 und höher verfügbar

CallJS verwendet die auf der FormIt-Seite aufzurufende JavaScript-Funktion und das arguments.json-Objekt.

Vorteile:

➕ Das Ergebnis dann verfügbar, wenn es gebraucht wird.

Nachteile:

➖ **** Alle async-Aufrufe müssen mit await ausgezeichnet werden. Wenn dies vergessen wird, gerät alles durcheinander.

➖ **** Möglicherweise langsamer aufgrund von await

Methode 3 (async/await)

Bei einem async-Aufruf ruft die Web-Seite die FormIt-Seite auf. Dieser Aufruf startet in einem Prozess, wird an einen anderen Prozess gesendet, und das Ergebnis wird an den Startprozess zurückgegeben. Deshalb ist await notwendig.

Nur integrierte FormIt-APIs können vorgabemäßig aufgerufen werden.

Vorteile:

➕ Das Ergebnis ist dann verfügbar, wenn es gebraucht wird.

➕ Ermöglicht die Kombination des gesamten Codes in einer JS-Datei, die über die Web-Seite ausgeführt wird, ohne dass Skripts in manifest.json definiert sind.

Nachteile:

➖ **** Alle async-Aufrufe müssen mit await ausgezeichnet werden. Wenn dies vergessen wird, gerät alles durcheinander.

➖ **** Möglicherweise langsamer aufgrund von await.

Methode 4 (RegisterAsyncAPI)

*Nur in FormIt 2023.0 und höher verfügbar

Um eine benutzerdefinierte Funktion auf der FormIt-Seite aufzurufen, muss die Funktion registriert werden. Beispiel:

Client-Seite (FormIt)

Web-Seite (HTML)

Ein Beispiel finden Sie unter HelloBlockAsync.

Vorteile:

➕ Das Ergebnis ist dann verfügbar, wenn es gebraucht wird.

➕ Ermöglicht die Kombination des gesamten Codes in einer JS-Datei, die über die Web-Seite ausgeführt wird, ohne dass Skripts in manifest.json definiert sind.

Nachteile:

➖ **** Alle async-Aufrufe müssen mit await ausgezeichnet werden. Wenn dies vergessen wird, gerät alles durcheinander.

➖ **** Möglicherweise langsamer aufgrund von await.

Last updated