首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在已编译的海斯特(Haskell)中,为什么必须事先创建拼接?

问在已编译的海斯特(Haskell)中,为什么必须事先创建拼接?
EN

Stack Overflow用户
提问于 2016-08-28 14:46:55
回答 1查看 93关注 0票数 0

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

但是,我不明白为什么必须预先创建连接并将其放入HeistConfig中。这有什么好处呢?我看不出有什么好处,因为剪接是在运行时计算的。这背后的思想过程是什么?

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-28 17:45:54

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

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

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

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39192461

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档