用戶端與網頁端引擎
Last updated
Last updated
FormIt 外掛程式使用兩個不同的 JavaScript 引擎:
面板顯示 HTML (網頁端)
用戶端 (FormIt) 呼叫 FormIt 及其幾何圖形核心。
這兩個 JavaScript 引擎在不同的程序中工作。
FormIt 會同時執行多個 JavaScript 引擎:
FormIt 應用程式有自己的 JavaScript 引擎
每個外掛程式工具列都有自己的 JavaScript 引擎。
每個外掛程式面板都有自己的 JavaScript 引擎 (Chromium)
外掛程式可以指定 JavaScript 的載入位置:
使用 manifest.json 指定
使用 index.html 指定
網頁端指令碼是從網頁載入。
網頁端指令碼可以使用多個非同步呼叫,來呼叫用戶端 (FormIt) JavaScript。
CallMethod
使用將在 FormIt 端上執行的函式名稱以及引數。傳入的函式將搭配函式呼叫的結果呼叫。
優點:
➕ 不需要 await
。
缺點:
➖ 需要回呼才能得到結果,也就是所謂的「沒人知道何時」。
➖ 指令碼定義在兩個不同的位置。
➖ 需要將外掛程式邏輯分為兩個不同的檔案。
*只有 FormIt 2022.1 和更高版本提供
CallJS 使用要在 FormIt 端呼叫的 JavaScript 函式和 arguments.json 物件。
優點:
➕ 需要時就可以得到結果
缺點:
➖ **** 必須使用 await 裝飾所有非同步呼叫,忘記這樣做就會導致事情惡化。
➖ **** 速度可能會因為 await
而變慢
網頁端透過非同步呼叫來呼叫 FormIt 端。此呼叫會在一個程序中開始,傳送至另一個程序,然後結果會傳回到開始程序。這就是為什麼需要等待。
預設只能呼叫內建 FormIt API。
優點:
➕ 需要時就可以得到結果。
➕ 允許將所有程式碼合併到從網頁端執行的一個 JS 檔案中,不需要在 manifest.json 中定義任何指令碼。
缺點:
➖ **** 必須使用 await
裝飾所有非同步呼叫,忘記這樣做就會導致事情惡化。
➖ **** 速度可能會因為 await.
而變慢
*只有 FormIt 2023.0 和更高版本提供
若要在 FormIt 端呼叫使用者定義的函式,需要註冊該函式。例如:
用戶端 (FormIt)
網頁端 (HTML)
請參閱 HelloBlockAsync 查看範例。
優點:
➕ 需要時就可以得到結果。
➕ 允許將所有程式碼合併到從網頁端執行的一個 JS 檔案中,不需要在 manifest.json 中定義任何指令碼。
缺點:
➖ **** 必須使用 await 裝飾所有非同步呼叫,忘記這樣做就會導致事情惡化。
➖ **** 速度可能會因為 await.
而變慢