[英]In Compiled Heist (Haskell), why must splices be created beforehand?
我能理解为什么必须事先处理HTML模板(.tpl文件)(使用loadTemplates
)并放入HeistConfig
。 这使Heist可以事先将HTML处理为更有效的格式。
但是,我不明白为什么还必须事先创建接头并将其放入HeistConfig
。 这有什么好处? 我看不到好处,因为无论如何拼接都是在运行时计算的。 这背后的思想过程是什么?
我认为这可能是因为接头还可以在加载时 (除了运行时)执行代码。 这是主要的解释吗?
拼接功能(编译和解释)在节点上运行。 认为接头具有Node- 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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.