TXFAJavaScriptSession

Модуль: HPDFXFAEventScript

Объявление

TXFAJavaScriptSession= class

Поведение

Владеет независимым движком QuickJS и ограниченным журналом закоммиченных виртуальных вычислений

Сохраняет между событиями лексические переменные объектов-скриптов, функции, значения объектов и вложенные замыкания; откат восстанавливает движок повторным проигрыванием закоммиченных вычислений

Записывает входы Date и Math.random для воспроизводимого повтора; повтор выполняет только виртуальные операции над формой и не публикует мутации документа

Поддерживающий код событий компилируется один раз для каждого принадлежащего движка; каждое вычисление получает свежий контекст формы и данных, тело скрипта, ограничения и записанные векторы ответов

Откат переустанавливает этот поддерживающий код и проигрывает закоммиченные динамические вычисления, сохраняя независимое лексическое состояние и замыкания, без повторного разбора библиотеки поддержки для каждой записи журнала

Общий исходник поддержки списывается в лимит байтов журнала один раз — вместе с закоммиченными динамическими вычислениями и возвращёнными результатами; пересборка и повтор остаются в пределах прежних ограничений по времени и движку

Ограничения журнала по умолчанию: 64 MiB на скрипты плюс возвращённые результаты и 8192 вычисления, включая привязки идентичности; отдельно действуют ограничения движка на память, стек, операции, прерывания и время выполнения

TXFAWidgetRuntime автоматически владеет одной сессией при использовании поставляемого общего движка; состояние сессии не сериализуется в XDP, а новый runtime стартует с нуля

Класс однопоточный, и конкурентные вызывающие не должны разделять один экземпляр

Связанные API

TXFAJavaScriptSession, HPDFXFAExecuteJavaScriptEvent и Интерактивный runtime динамических XFA-виджетов