Mechanizmy po stronie klienta i po stronie WWW
Last updated
Last updated
We wtyczkach programu FormIt wykorzystywane są dwa różne mechanizmy JavaScript:
Panel wyświetlający HTML (po stronie WWW)
Strona klienta (program FormIt) wywołuje program FormIt i jego jądro geometrii.
Te dwa mechanizmy JavaScript działają w odrębnych procesach.
Program FormIt uruchamia wiele mechanizmów JavaScript jednocześnie:
Aplikacja FormIt ma własny mechanizm JavaScript
Każdy pasek narzędzi wtyczki ma własny mechanizm JavaScript.
Każdy panel wtyczki ma własny mechanizm JavaScript (Chromium)
Wtyczki mogą określać, gdzie wczytywany jest kod JavaScript:
Określone przy użyciu pliku manifest.json
Określone przy użyciu pliku index.html
Skrypty po stronie WWW są wczytywane ze strony internetowej.
Skrypty po stronie WWW mogą wywoływać kod JavaScript po stronie klienta (FormIt) za pomocą wielu wywołań asynchronicznych.
CallMethod
pobiera nazwę funkcji i argumenty, które będą uruchamiane po stronie programu FormIt. Przekazana funkcja zostanie wywołana z wynikiem wywołania funkcji.
Zalety:
➕ Nie potrzeba await
.
Wady:
➖ Do uzyskania wyniku potrzebne jest wywołanie zwrotne, o którym nie wiadomo, kiedy nastąpi.
➖ Skrypty są zdefiniowane w dwóch różnych miejscach.
➖ Logika wtyczki musi być podzielona między dwa różne pliki.
*Jest to dostępne tylko w programie FormIt 2022.1 i nowszych wersjach
Funkcja CallJS przyjmuje funkcję JavaScript do wywołania po stronie programu FormIt i obiekt arguments.json.
Zalety:
➕ Wynik jest dostępny, gdy jest potrzebny
Wady:
➖ **** Wszystkie wywołania asynchroniczne należy opatrzyć „await”: pominięcie tego spowoduje bałagan.
➖ **** Metoda jest potencjalnie wolniejsza z await
Po stronie WWW następuje wywołanie asynchroniczne strony programu FormIt. To wywołanie rozpoczyna się w jednym procesie, zostaje wysłane do innego procesu, a jego wynik zostaje przekazany z powrotem do procesu początkowego. Dlatego też potrzebne jest oczekiwanie.
Domyślnie można wywoływać tylko wbudowane interfejsy API programu FormIt.
Zalety:
➕ Wynik jest dostępny, gdy jest potrzebny.
➕ Umożliwia połączenie całego kodu w jednym pliku JS uruchamianym po stronie WWW, bez definiowania skryptów w pliku manifest.json.
Wady:
➖ **** Wszystkie wywołania asynchroniczne należy opatrzyć await
: pominięcie tego spowoduje bałagan.
➖ **** Metoda jest potencjalnie wolniejsza z await.
*Jest to dostępne tylko w programie FormIt 2023.0 i nowszych wersjach
Aby można było wywoływać funkcję zdefiniowaną przez użytkownika po stronie programu FormIt, ta funkcja musi być zarejestrowana. Przykładowo:
Strona klienta (FormIt)
Strona WWW (HTML)
Zobacz przykład HelloBlockAsync.
Zalety:
➕ Wynik jest dostępny, gdy jest potrzebny.
➕ Umożliwia połączenie całego kodu w jednym pliku JS uruchamianym po stronie WWW, bez definiowania skryptów w pliku manifest.json.
Wady:
➖ **** Wszystkie wywołania asynchroniczne należy opatrzyć „await”: pominięcie tego spowoduje bałagan.
➖ **** Metoda jest potencjalnie wolniejsza z await.