TXFAJavaScriptSession
单元: HPDFXFAEventScript
声明
TXFAJavaScriptSession= class
行为
持有一个独立的 QuickJS 引擎和一份有界的已提交虚拟求值日志
跨事件保留 script-object 词法变量、函数、对象值和嵌套闭包;回滚时通过重放已提交的求值来重建引擎
记录 Date 和 Math.random 输入以支持可复现的重放;重放只执行虚拟表单操作,不会发布文档变更
事件支持代码为每个所属引擎只编译一次;每次求值都提供全新的表单与数据上下文、脚本正文、限制以及已记录的响应向量
回滚会重新安装该支持代码并重放已提交的动态求值,保留独立的词法与闭包状态,无需为每条日志条目重新解析支持库
共享支持源只按一次计入日志字节限额,与已提交的动态求值和返回结果一起计费;重建与重放仍在既有的耗时和引擎限制之内
默认日志上限为脚本加返回结果 64 MiB、求值 8192 次,身份绑定也计入其中;引擎内存、栈、操作数、中断和耗时限制同样生效
使用随库自带的通用引擎时,TXFAWidgetRuntime 会自动持有一个 session;session 状态不会序列化进 XDP,新建的 runtime 从零开始
该类不是线程安全的,不得被并发调用方共享
相关 API
TXFAJavaScriptSession, HPDFXFAExecuteJavaScriptEvent and 交互式动态 XFA Widget 运行时