使用Lua编写Web端模板引擎的实例代码分享
程序员文章站
2022-06-17 09:34:18
ltemplate.lua
local insert = table.insert
local remove = table.remove
local con...
ltemplate.lua
master.html
temp.html,继承master.html
循环十万次测试渲染速度(阿里云最便宜一款vps)
总结
由此可见渲染的速度还是非常快的,可以将此原型用于嵌入式设备中的页面上(用大量js实现的嵌入式设备页面兼容性不好)。而且嵌入式设备的界面需要简单明确,所以也不用太丰富的模版功能。
原理很简单:
1.用lua版的正则把模版内{#与#}之间的内容挖出来,原样输出成lua代码,其它部分则生成使用echo打印到某个缓冲区的lua代码。
2.将这个生成出来的代码使用loadstring编译。
3.通过setfenv实现loadstring后的模拟环境配置(用以提供模版内使用的echo,ob_start等函数,以及传入的参数)
4.执行这个编译后的函数即可。
上一篇: Lua中的变量类型与语句学习总结
下一篇: Lua中函数与面向对象编程的基础知识整理