为了处理 Web 应用程序中的每个请求,关于模板的正常代码是这样的:
t:= template.New("welcome")
t, _ = t.ParseFiles("welcome.tpl")
t.Execute(w, data)
估计ParseFiles
每次都要花很多钱。是否可以重复使用模板?所以我像这样改进它:
//templateMap := make(map[string][template])
//...
tplName :="welcome"
t := templateMap[tplName]
if t=nil{
t:= template.New(tplName )
t, _ = t.ParseFiles("welcome.tpl")
templateMap[tplName] = t
}
t.Execute(w, data)
我想知道通过将模板放入地图或缓存来提高效率是否可行或可行?我也想知道这个函数 Execute
是否是线程安全的?
func (t *Template) Execute(wr io.Writer, data interface{}) (err error)