TXFAJavaScriptSession

Unit: HPDFXFAEventScript

Declaração

TXFAJavaScriptSession= class

Comportamento

É dono de um engine QuickJS independente e de um journal delimitado de avaliações virtuais commitadas

Preserva variáveis lexiais de objetos de script, funções, valores de objetos e closures aninhadas entre eventos; o rollback reconstrói o engine reproduzindo as avaliações commitadas

Registra entradas de Date e Math.random para replay reproduzível; o replay executa apenas operações virtuais de formulário e não publica mutações de documento

O código de suporte a eventos é compilado uma vez para cada engine próprio; cada avaliação fornece um contexto fresco de formulário e dados, corpo de script, limites e vetores de resposta registrados

O rollback reinstala esse código de suporte e reproduz as avaliações dinâmicas commitadas, preservando o estado lexical e de closures independente, sem reparsear a biblioteca de suporte para cada entrada do journal

A fonte de suporte compartilhada é cobrada uma vez contra o limite de bytes do journal, junto com as avaliações dinâmicas commitadas e os resultados retornados; rebuild e replay permanecem dentro dos limites existentes de tempo decorrido e do engine

Os limites default do journal são 64 MiB para scripts mais resultados retornados e 8192 avaliações, incluindo identity bindings; os limites de memória, stack, operações, interrupções e tempo decorrido do engine também se aplicam

TXFAWidgetRuntime é dono de uma sessão automaticamente ao usar o engine geral embarcado; o estado da sessão não é serializado no XDP e um runtime novo começa do zero

A classe é single-threaded e não deve ser compartilhada por chamadores concorrentes

APIs relacionadas

TXFAJavaScriptSession, HPDFXFAExecuteJavaScriptEvent e Runtime interativo de widgets XFA dinâmicos