是否有必要将模板放入地图中以便在 Go 中重复使用?

为了处理 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)


慕沐林林
浏览 174回答 2
2回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go