TXFAJavaScriptSession

单元: HPDFXFAEventScript

声明

TXFAJavaScriptSession= class

行为

持有一个独立的 QuickJS 引擎和一份有界的已提交虚拟求值日志

跨事件保留 script-object 词法变量、函数、对象值和嵌套闭包;回滚时通过重放已提交的求值来重建引擎

记录 Date 和 Math.random 输入以支持可复现的重放;重放只执行虚拟表单操作,不会发布文档变更

事件支持代码为每个所属引擎只编译一次;每次求值都提供全新的表单与数据上下文、脚本正文、限制以及已记录的响应向量

回滚会重新安装该支持代码并重放已提交的动态求值,保留独立的词法与闭包状态,无需为每条日志条目重新解析支持库

共享支持源只按一次计入日志字节限额,与已提交的动态求值和返回结果一起计费;重建与重放仍在既有的耗时和引擎限制之内

默认日志上限为脚本加返回结果 64 MiB、求值 8192 次,身份绑定也计入其中;引擎内存、栈、操作数、中断和耗时限制同样生效

使用随库自带的通用引擎时,TXFAWidgetRuntime 会自动持有一个 session;session 状态不会序列化进 XDP,新建的 runtime 从零开始

该类不是线程安全的,不得被并发调用方共享

相关 API

TXFAJavaScriptSession, HPDFXFAExecuteJavaScriptEvent and 交互式动态 XFA Widget 运行时