TXFAJavaScriptSession
Unit: HPDFXFAEventScript
Deklaration
TXFAJavaScriptSession= class
Verhalten
Besitzt eine unabhängige QuickJS-Engine und ein begrenztes Journal festgeschriebener virtueller Auswertungen
Bewahrt lexikalische Variablen von Skriptobjekten, Funktionen, Objektwerte und verschachtelte Closures über Events hinweg; der Rollback rekonstruiert die Engine durch Abspielen der festgeschriebenen Auswertungen
Zeichnet Date- und Math.random-Eingaben für reproduzierbares Replay auf; das Replay führt nur virtuelle Formularoperationen aus und publiziert keine Dokumentmutationen
Der Event-Support-Code wird pro eigener Engine einmal kompiliert; jede Auswertung liefert einen frischen Formular- und Datenkontext, den Skriptkörper, Limits und aufgezeichnete Antwortvektoren
Beim Rollback wird dieser Support-Code neu installiert und die festgeschriebenen dynamischen Auswertungen werden abgespielt, wobei unabhängiger lexikalischer und Closure-Zustand erhalten bleibt, ohne die Support-Bibliothek für jeden Journal-Eintrag neu zu parsen
Die gemeinsame Support-Source wird einmal auf das Journal-Byte-Limit angerechnet, zusammen mit festgeschriebenen dynamischen Auswertungen und zurückgegebenen Ergebnissen; Neuaufbau und Replay bleiben innerhalb der bestehenden Zeit- und Engine-Limits
Voreingestellte Journal-Grenzen sind 64 MiB für Skripte plus zurückgegebene Ergebnisse und 8192 Auswertungen, einschließlich Identity-Bindings; Engine-Speicher-, Stack-, Operations-, Interrupt- und Zeitlimits gelten zusätzlich
TXFAWidgetRuntime besitzt bei Nutzung der mitgelieferten Allzweck-Engine automatisch eine Session; der Session-Zustand wird nicht nach XDP serialisiert, und eine neue Runtime startet frisch
Die Klasse ist single-threaded und darf nicht von nebenläufigen Aufrufern geteilt werden
Verwandte APIs
TXFAJavaScriptSession, HPDFXFAExecuteJavaScriptEvent und Interaktive dynamische XFA-Widget-Runtime