我的应用程序在加载时对客户端的 DOM 进行了大量重写。它遍历页面扫描特殊标记(想想 Markdown)或其他模式,用有时相当复杂的 DOM 结构(使用 DOM 调用,例如createElement
)替换它们以设置文本样式,同时创建图表和图形。
我采用这种架构是为了避免任何构建或预处理步骤。它在桌面浏览器中运行良好,但在移动设备上明显慢(几秒钟,即使经过不懈的优化)。所以我想重新架构系统以预扫描页面并预构建 DOM。我在弄清楚如何做到这一点时有点精神障碍。显然,我不希望用其他服务器端语言重写所有 Javascript。另外,我想像现在一样保留在加载时进行构建的选项,基本的重写逻辑共享相同的代码。
最有可能的选择是将其构建为节点应用程序,尽管我是节点初学者。使用 jsdom 来解析输入和修改 DOM。或者,由于我是 XSLT 的粉丝,并且对 Saxon-CE 很感兴趣,即使这意味着重写所有内容,我也考虑在 XSLT 中实现扫描/重写逻辑,以便从节点调用(用于预构建案例——人们使用节点中的撒克逊人吗?)或浏览器(用于加载时构建案例)。
任何人都可以评论这种方法或抛出替代想法吗?