Comparación entre motores del cliente y motores web

Los módulos de extensión de FormIt utilizan dos motores de JavaScript distintos, como se indica a continuación:

  • El panel que muestra el código HTML (motor web).

  • El motor del cliente (FormIt) realiza las llamadas a FormIt y su núcleo de geometría.

Estos dos motores de JavaScript funcionan en procesos distintos.

Comparación entre el lado del cliente (FormIt) y el lado web (HTML)

FormIt ejecuta varios motores de JavaScript simultáneamente, como se indica a continuación:

  • La aplicación FormIt cuenta con su propio motor de JavaScript.

  • Cada barra de herramientas de módulo de extensión cuenta con su propio motor de JavaScript.

  • Cada panel de módulo de extensión cuenta con su propio motor de JavaScript (Chromium).

Los módulos de extensión pueden especificar dónde se carga JavaScript, como se muestra a continuación:

Lado del cliente (FormIt)

Especificado mediante manifest.json

Lado web (HTML)

Especificado mediante index.html

  • Las secuencias de comandos del lado web se cargan desde la página web.

  • Las secuencias de comandos del lado web pueden llamar al motor de JavaScript del cliente (FormIt) mediante varias llamadas asincrónicas.

Hay tres métodos disponibles para llamar a comandos del lado del cliente (FormIt) desde un módulo de extensión basado en web, como se indica a continuación:

Método 1: FormItInterface.CallMethod

CallMethod utiliza un nombre de función y los argumentos que se ejecutarán en el lado de FormIt. Se llamará a la función transferida con el resultado de la llamada a la función.

Ventajas:

➕ No seawait necesita.

Desventajas:

➖ Se necesita una llamada para obtener el resultado, que se denomina "quién sabe cuándo".

➖ Las secuencias de comandos se definen en dos ubicaciones diferentes.

➖ Requiere que la lógica del módulo de extensión se divida en dos archivos.

Método 2: FormIt.CallJS

*Disponible solo en FormIt 2022.1 y versiones posteriores

CallJS utiliza la función de JavaScript a la que se va a llamar en el lado de FormIt y el objeto arguments.json.

Ventajas:

➕ El resultado está disponible cuando es necesario.

Desventajas:

➖ **** Es necesario incluir "await" en todas las llamadas asincrónicas; si se olvida de realizar esta tarea, pueden producirse problemas.

➖ **** Posiblemente más lento debido a await.

Método 3 (async/await)

Con una llamada asincrónica, el lado web llama al lado de FormIt. Esta llamada se inicia en un proceso, se envía a otro proceso y, a continuación, el resultado se devuelve al proceso inicial. Por eso, es necesario el parámetro "await".

Solo se puede llamar por defecto a las API de FormIt integradas.

Ventajas:

➕ El resultado está disponible cuando es necesario.

➕ Permite combinar todo el código en un archivo JS ejecutado desde el lado web sin secuencias de comandos definidas en manifest.json.

Desventajas:

➖ **** Es necesario incluir await en todas las llamadas asincrónicas; si se olvida de realizar esta tarea, pueden producirse problemas.

➖ **** Posiblemente más lento debido a await..

Método 4 (RegisterAsyncAPI)

*Disponible solo en FormIt 2023.0 y versiones posteriores

Para llamar a una función definida por el usuario en FormIt, la función debe estar registrada. Por ejemplo:

Lado del cliente (FormIt)

Lado web (HTML)

Consulte HelloBlockAsync para obtener un ejemplo.

Ventajas:

➕ El resultado está disponible cuando es necesario.

➕ Permite combinar todo el código en un archivo JS ejecutado desde el lado web sin secuencias de comandos definidas en manifest.json.

Desventajas:

➖ **** Es necesario incluir "await" en todas las llamadas asincrónicas; si se olvida de realizar esta tarea, pueden producirse problemas.

➖ **** Posiblemente más lento debido a await..

Last updated