TXFAJavaScriptSession
Модуль: HPDFXFAEventScript
Объявление
TXFAJavaScriptSession= class
Поведение
Владеет независимым движком QuickJS и ограниченным журналом закоммиченных виртуальных вычислений
Сохраняет между событиями лексические переменные объектов-скриптов, функции, значения объектов и вложенные замыкания; откат восстанавливает движок повторным проигрыванием закоммиченных вычислений
Записывает входы Date и Math.random для воспроизводимого повтора; повтор выполняет только виртуальные операции над формой и не публикует мутации документа
Поддерживающий код событий компилируется один раз для каждого принадлежащего движка; каждое вычисление получает свежий контекст формы и данных, тело скрипта, ограничения и записанные векторы ответов
Откат переустанавливает этот поддерживающий код и проигрывает закоммиченные динамические вычисления, сохраняя независимое лексическое состояние и замыкания, без повторного разбора библиотеки поддержки для каждой записи журнала
Общий исходник поддержки списывается в лимит байтов журнала один раз — вместе с закоммиченными динамическими вычислениями и возвращёнными результатами; пересборка и повтор остаются в пределах прежних ограничений по времени и движку
Ограничения журнала по умолчанию: 64 MiB на скрипты плюс возвращённые результаты и 8192 вычисления, включая привязки идентичности; отдельно действуют ограничения движка на память, стек, операции, прерывания и время выполнения
TXFAWidgetRuntime автоматически владеет одной сессией при использовании поставляемого общего движка; состояние сессии не сериализуется в XDP, а новый runtime стартует с нуля
Класс однопоточный, и конкурентные вызывающие не должны разделять один экземпляр
Связанные API
TXFAJavaScriptSession, HPDFXFAExecuteJavaScriptEvent и Интерактивный runtime динамических XFA-виджетов