TXFAJavaScriptSession
單元:HPDFXFAEventScript
宣告
TXFAJavaScriptSession= class
行為
擁有獨立的 QuickJS 引擎,以及一份有界的已提交虛擬求值日誌
跨事件保留 script 物件的詞彙變數、函式、物件值與巢狀 closure;rollback 會重播已提交的求值來重建引擎
記錄 Date 與 Math.random 輸入以支援可重現的重播;重播只執行虛擬表單操作,不會發布文件變更
事件支援程式碼在每個擁有的引擎上只編譯一次;每次求值提供全新的表單與資料上下文、script 本體、上限與記錄的回應向量
rollback 會重新安裝該支援程式碼並重播已提交的動態求值,保留獨立的詞彙與 closure 狀態,不必為每筆日誌重新解析支援庫
共用的支援原始碼與已提交的動態求值及回傳結果一併計入日誌位元組上限,且只計一次;重建與重播也在既有的耗時與引擎限制之內
日誌預設上限為 64 MiB 的 script 加回傳結果,以及 8192 次求值(包括 identity 綁定);引擎記憶體、堆疊、運算、中斷與耗時限制同樣適用
使用隨附的一般引擎時,TXFAWidgetRuntime 會自動擁有一個 session;session 狀態不會序列化進 XDP,新的 runtime 從乾淨狀態開始
此類別是單執行緒的,不可由並發呼叫端共用
相關 API
TXFAJavaScriptSession、HPDFXFAExecuteJavaScriptEvent 與 互動式動態 XFA Widget 執行環境