एक वेब अनुप्रयोग में प्रत्येक अनुरोध के साथ निपटने के लिए, टेम्पलेट के बारे में सामान्य कोड इस तरह है:क्या गो में पुनः उपयोग करने के लिए टेम्पलेट्स को मानचित्र में रखना आवश्यक है?
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)
क्या यह दृष्टिकोण टेम्पलेट्स के साथ काम करने का एक सुविधाजनक तरीका है जो विरासत का उपयोग करता है? (उदा।, जहां कुछ टेम्पलेट्स के लिए आधार टेम्पलेट है?) – carbocation