Mecanismos do lado do cliente versus do lado da Web
Last updated
Last updated
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.
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:
Especificado usando manifest.json
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.
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.
*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
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.
*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.