]> source.dussan.org Git - gitea.git/commitdiff
Fix load time bug (#14508)
authorLunny Xiao <xiaolunwen@gmail.com>
Fri, 29 Jan 2021 04:33:47 +0000 (12:33 +0800)
committerGitHub <noreply@github.com>
Fri, 29 Jan 2021 04:33:47 +0000 (05:33 +0100)
modules/context/context.go

index adae562c0a8e6b2a8f21fa63618552cfb485511b..210365f0b159b02cfe141dddca39f310ca231107 100644 (file)
@@ -10,6 +10,7 @@ import (
        "crypto/sha256"
        "encoding/hex"
        "encoding/json"
+       "fmt"
        "html"
        "html/template"
        "io"
@@ -182,6 +183,10 @@ func (ctx *Context) RedirectToFirst(location ...string) {
 // HTML calls Context.HTML and converts template name to string.
 func (ctx *Context) HTML(status int, name base.TplName) {
        log.Debug("Template: %s", name)
+       var startTime = time.Now()
+       ctx.Data["TmplLoadTimes"] = func() string {
+               return fmt.Sprint(time.Since(startTime).Nanoseconds()/1e6) + "ms"
+       }
        if err := ctx.Render.HTML(ctx.Resp, status, string(name), ctx.Data); err != nil {
                ctx.ServerError("Render failed", err)
        }
@@ -190,6 +195,10 @@ func (ctx *Context) HTML(status int, name base.TplName) {
 // HTMLString render content to a string but not http.ResponseWriter
 func (ctx *Context) HTMLString(name string, data interface{}) (string, error) {
        var buf strings.Builder
+       var startTime = time.Now()
+       ctx.Data["TmplLoadTimes"] = func() string {
+               return fmt.Sprint(time.Since(startTime).Nanoseconds()/1e6) + "ms"
+       }
        err := ctx.Render.HTML(&buf, 200, string(name), data)
        return buf.String(), err
 }
@@ -547,10 +556,7 @@ func Contexter() func(next http.Handler) http.Handler {
                                Data: map[string]interface{}{
                                        "CurrentURL":    setting.AppSubURL + req.URL.RequestURI(),
                                        "PageStartTime": startTime,
-                                       "TmplLoadTimes": func() string {
-                                               return time.Since(startTime).String()
-                                       },
-                                       "Link": link,
+                                       "Link":          link,
                                },
                        }