TXFAJavaScriptSession
Unit: HPDFXFAEventScript
Declaración
TXFAJavaScriptSession= class
Comportamiento
Posee un motor QuickJS independiente y un journal acotado de evaluaciones virtuales confirmadas
Conserva variables léxicas de objetos de script, funciones, valores de objetos y closures anidadas entre eventos; el rollback reconstruye el motor re-reproduciendo las evaluaciones confirmadas
Registra las entradas de Date y Math.random para un replay reproducible; el replay ejecuta solo operaciones virtuales de formulario y no publica mutaciones del documento
El código de soporte de eventos se compila una vez por cada motor propio; cada evaluación suministra un contexto de formulario y datos fresco, cuerpo de script, límites y vectores de respuesta grabados
El rollback reinstala ese código de soporte y re-reproduce las evaluaciones dinámicas confirmadas, conservando estado léxico y de closures independiente sin re-parsear la librería de soporte por cada entrada del journal
El código fuente de soporte compartido se carga una sola vez contra el límite de bytes del journal, junto con las evaluaciones dinámicas confirmadas y los resultados devueltos; la reconstrucción y el replay quedan dentro de los límites existentes de tiempo transcurrido y de motor
Los límites por defecto del journal son 64 MiB para scripts más resultados devueltos y 8192 evaluaciones, incluidos los identity bindings; también aplican los límites de memoria, stack, operaciones, interrupciones y tiempo transcurrido del motor
TXFAWidgetRuntime posee una sesión automáticamente al usar el motor general incluido; el estado de la sesión no se serializa en el XDP y un runtime nuevo arranca desde cero
La clase es single-threaded y no debe compartirse entre llamadores concurrentes
APIs relacionadas
TXFAJavaScriptSession, HPDFXFAExecuteJavaScriptEvent y Runtime de widgets XFA dinámicos interactivo