0

我可以理解为什么必须事先处理 HTML 模板(.tpl 文件)(使用loadTemplates)并放入HeistConfig. 这允许 Heist 预先将 HTML 处理为更有效的格式。

但是,我不明白为什么还必须事先创建拼接并将其放入HeistConfig. 这有什么好处?我没有看到好处,因为无论如何拼接都是在运行时计算的。这背后的思考过程是什么?

我认为这可能是因为拼接也可以在加载时(除了运行时)执行代码。这是主要的解释吗?

4

1 回答 1

1

拼接函数(编译和解释)在节点上运行。将拼接视为具有类型签名Node -> m [Node]。这是一个相对昂贵的操作,因为它是在 DOM 级别操作的。拼接的结果节点被插入回 DOM 树中,然后必须将整个树渲染为 ByteString。编译抢劫背后的想法是在应用程序初始化时尽可能多地完成这种渲染工作。初始化的输出将是[Chunk]Chunk 可以是静态 ByteString 或动态m ByteString(实际类型略有不同)。[Node]在初始化将整个模板从转换为 之前,必须处理已编译的拼接[Chunk]。为了最大限度地提高运行时效率,转换发生在应用程序初始化时。

有关更多信息,请查看以下链接:

http://snapframework.com/docs/tutorials/compiled-splices

https://github.com/snapframework/heist/wiki/Compiled-Splice-Formulations

于 2016-08-28T17:45:54.200 回答