我可以理解为什么HTML模板(.tpl文件)必须事先处理(使用loadTemplates)并放入HeistConfig中。这使得Heist能够预先将HTML处理成更有效的格式。
但是,我不明白为什么必须预先创建连接并将其放入HeistConfig中。这有什么好处呢?我看不出有什么好处,因为剪接是在运行时计算的。这背后的思想过程是什么?
我认为这可能是因为拼接也可以在加载时(除了运行时)执行代码。这是主要的解释吗?
发布于 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
https://stackoverflow.com/questions/39192461
复制相似问题