Мое приложение выполняет массовую перезапись DOM на стороне клиента во время загрузки. Он просматривает страницу в поисках специальной разметки (например, Markdown) или других шаблонов, заменяя их иногда довольно сложными структурами DOM (используя вызовы DOM, такие как createElement
) для стилизации текста, а также для создания диаграмм и графики.
Я принял эту архитектуру, чтобы избежать каких-либо этапов сборки или предварительной обработки. Он отлично работает в десктопном браузере, но заметно тормозит на мобильных устройствах (несколько секунд, даже после неустанной оптимизации). Поэтому я хотел бы перестроить систему для предварительного сканирования страницы и предварительного построения DOM. У меня что-то вроде умственного блока, чтобы понять, как это сделать. Очевидно, я бы предпочел не переписывать весь Javascript на каком-то другом серверном языке. Кроме того, я хотел бы сохранить возможность выполнять сборку во время загрузки, как сейчас, с базовой логикой перезаписи, использующей тот же код.
Наиболее вероятным вариантом является создание этого приложения в качестве узла, хотя я новичок в узле. используя jsdom как для анализа ввода, так и для изменения DOM. Или, поскольку я являюсь поклонником XSLT и заинтригован Saxon-CE, даже несмотря на то, что это будет означать переписывание всего, я также рассматривал возможность реализации логики сканирования/перезаписи в XSLT, которая будет вызываться либо из узла (для предварительной сборки случай — люди используют Saxon из узла?) или браузера (для случая сборки во время загрузки).
Кто-нибудь может прокомментировать этот подход или выбросить альтернативные идеи?