Mecanismos do lado do cliente versus do lado da Web
Os plug-ins do FormIt usam dois mecanismos diferentes do JavaScript:
O painel que exibe o HTML (lado da Web)
O lado do cliente (FormIt) faz chamadas para o FormIt e seu kernel de geometria.
Esses dois mecanismos do JavaScript funcionam em processos distintos.
Lado do cliente (FormIt) versus lado da Web (HTML)
O FormIt executa vários mecanismos do JavaScript simultaneamente:
O aplicativo do FormIt tem seu próprio mecanismo de JavaScript
Cada barra de ferramentas de plug-in tem seu próprio mecanismo de JavaScript.
Cada painel de plug-in tem seu próprio mecanismo de JavaScript (Chromium)
Os plug-ins podem especificar onde o JavaScript é carregado:
Lado do cliente (FormIt)
Especificado usando manifest.json
Lado da Web (HTML)
Especificado usando index.html
Os scripts do lado da Web são carregados na página da Web.
Os scripts do lado da Web podem chamar o JavaScript do lado do cliente (FormIt) usando várias chamadas assíncronas.
Três métodos para chamar comandos do lado do cliente (FormIt) com base em um plug-in baseado na Web:
Método 1: FormItInterface.CallMethod
CallMethod
usa um nome de função e os argumentos que serão executados no lado do FormIt. A função passada será chamada com o resultado da chamada de função.
Prós:
➕ Nenhum await
necessário.
Contras:
➖ Um retorno de chamada é necessário para obter o resultado e é chamado de “quem sabe quando”.
➖ Os scripts são definidos em dois locais diferentes.
➖ Requer que a lógica de plug-in seja dividida em dois arquivos diferentes.
Método 2: FormIt.CallJS
*Disponível somente no FormIt 2022.1 e versões mais recentes
O CallJS leva a função JavaScript a ser chamada no lado do FormIt e no objeto arguments.json.
Prós:
➕ O resultado está disponível quando necessário
Contras:
➖ **** É preciso decorar todas as chamadas assíncronas com await, esquecer de fazer isso complicará as coisas.
➖ **** Potencialmente mais lento devido a await
Método 3 (assíncrono/await)
Com uma chamada assíncrona, o lado da Web chama o lado do FormIt. Essa chamada começa em um processo, é enviada para outro processo e, em seguida, o resultado é retornado ao processo inicial. É por isso que é necessário aguardar.
Somente as APIs do FormIt incorporadas podem ser chamadas por padrão.
Prós:
➕ O resultado está disponível quando necessário.
➕ Permite combinar todos os códigos em um arquivo JS executado na Web, sem scripts definidos no manifest.json.
Contras:
➖ **** É preciso decorar todas as chamadas assíncronas com await
, esquecer de fazer isso complicará as coisas.
➖ **** Potencialmente mais lento devido a await.
Método 4 (RegisterAsyncAPI)
*Disponível somente no FormIt 2023.0 e versões mais recentes
Para chamar uma função definida pelo usuário no lado do FormIt, a função precisa ser registrada. Por exemplo:
Lado do cliente (FormIt)
Lado da Web (HTML)
Consulte HelloBlockAsync para obter um exemplo.
Prós:
➕ O resultado está disponível quando necessário.
➕ Permite combinar todos os códigos em um arquivo JS executado na Web, sem scripts definidos no manifest.json.
Contras:
➖ **** É preciso decorar todas as chamadas assíncronas com await, esquecer de fazer isso complicará as coisas.
➖ **** Potencialmente mais lento devido a await.
Last updated