Сравнение клиентского и веб-модуля

В подключаемых модулях FormIt используются два разных модуля JavaScript.

  • Панель, на которой отображается HTML (веб-модуль).

  • Клиентский модуль (FormIt) отправляет вызовы в FormIt и его ядро геометрии.

Два этих модуля JavaScript работают в разных процессах.

Сравнение клиентского модуля (FormIt) с веб-модулем (HTML)

FormIt одновременно запускает несколько модулей JavaScript.

  • В приложении FormIt имеется собственный модуль JavaScript.

  • Каждая панель инструментов для подключаемого модуля содержит собственный модуль JavaScript.

  • Каждая панель подключаемого модуля имеет собственный модуль JavaScript (Chromium).

Подключаемые модули позволяют указывать место загрузки JavaScript.

Клиентский модуль (FormIt)

Указывается с помощью manifest.json

Веб-модуль (HTML)

Указывается с помощью index.html

  • Сценарии для веб-модуля загружаются с веб-страницы.

  • Сценарии для веб-модуля могут вызывать JavaScript клиентского модуля (FormIt) путем нескольких асинхронных вызовов.

Ниже приведены три метода вызова команд клиентского модуля (FormIt) из подключаемого веб-модуля.

Метод 1. FormItInterface.CallMethod

CallMethod получает имя функции и аргументы, которые будут выполняться в модуле FormIt. Переданная функция будет вызвана, результатом чего будет вызов функции.

Достоинства

await не требуется.

Недостатки

➖ Чтобы получить результат, требуется обратный вызов. Он называется «кто знает, когда».

➖ Определение сценариев выполняется в двух разных местах.

➖ Логика подключаемого модуля должна быть разделена на два разных файла.

Метод 2. FormIt.CallJS

*Доступно только в FormIt 2022.1 или более поздней версии

CallJS использует функцию JavaScript, вызываемую на стороне FormIt, и объект arguments.json.

Достоинства

➕ Результат доступен, когда он необходим.

Недостатки

➖ **** Необходимо специально выделять все асинхронные вызовы с помощью операторов ожидания (await). Если о них забыть, возникают серьезные проблемы.

➖ **** Может потребоваться больше времени из-за await.

Метод 3 (асинхронный/ожидание)

При асинхронном вызове веб-модуль вызывает модуль FormIt. Этот вызов начинается в одном процессе и передается в другой процесс, а затем результат передается назад в начальный процесс. Вот почему требуется оператор ожидания (await).

По умолчанию можно вызывать только встроенные API-интерфейсы FormIt.

Достоинства

➕ Результат доступен, когда он необходим.

➕ Позволяет объединить весь код в один файл JS, запускаемый из веб-модуля. В файле manifest.json сценарии не определены.

Недостатки

➖ **** Необходимо специально выделять все асинхронные вызовы с помощью await. Если о них забыть, возникают серьезные проблемы.

➖ **** Может потребоваться больше времени из-за await..

Метод 4 (RegisterAsyncAPI)

*Доступно только в FormIt 2023.0 или более поздней версии

Чтобы вызвать пользовательскую функцию на стороне FormIt, ее необходимо зарегистрировать. Например:

Клиентский модуль (FormIt)

Веб-модуль (HTML)

См. пример в разделе HelloBlockAsync.

Достоинства

➕ Результат доступен, когда он необходим.

➕ Позволяет объединить весь код в один файл JS, запускаемый из веб-модуля. В файле manifest.json сценарии не определены.

Недостатки

➖ **** Необходимо специально выделять все асинхронные вызовы с помощью операторов ожидания (await). Если о них забыть, возникают серьезные проблемы.

➖ **** Может потребоваться больше времени из-за await..

Last updated