diff options
author | Runxi Yu <me@runxiyu.org> | 2025-03-25 02:54:07 +0800 |
---|---|---|
committer | Runxi Yu <me@runxiyu.org> | 2025-03-25 02:54:07 +0800 |
commit | 06b1396b96dbefb4ab6c01b5d34b2150e1721165 (patch) | |
tree | fab751158768a67a0101d2eeb39717996e676ae8 /http_handle_repo_tree.go | |
parent | Cache dir view in tree view (diff) | |
download | forge-06b1396b96dbefb4ab6c01b5d34b2150e1721165.tar.gz forge-06b1396b96dbefb4ab6c01b5d34b2150e1721165.tar.zst forge-06b1396b96dbefb4ab6c01b5d34b2150e1721165.zip |
Cache file view
Diffstat (limited to 'http_handle_repo_tree.go')
-rw-r--r-- | http_handle_repo_tree.go | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/http_handle_repo_tree.go b/http_handle_repo_tree.go index 41ae93e..38b533d 100644 --- a/http_handle_repo_tree.go +++ b/http_handle_repo_tree.go @@ -42,7 +42,7 @@ func httpHandleRepoTree(writer http.ResponseWriter, request *http.Request, param cacheHandle := append(refHashSlice, []byte(pathSpec)...) - fmt.Printf("%#v", string(cacheHandle)) + fmt.Printf("%#v\n", string(cacheHandle)) if value, found := treeReadmeCache.Get(cacheHandle); found { params["files"] = value.DisplayTree @@ -52,6 +52,15 @@ func httpHandleRepoTree(writer http.ResponseWriter, request *http.Request, param return } + if value, found := commitPathFileHTMLCache.Get(cacheHandle); found { + params["file_contents"] = value + renderTemplate(writer, "repo_tree_file", params) + return + } + start := time.Now() + + fmt.Println("miss") + var target *object.Tree if pathSpec == "" { if commitObject, err = repo.CommitObject(refHash); err != nil { @@ -63,7 +72,6 @@ func httpHandleRepoTree(writer http.ResponseWriter, request *http.Request, param return } - start := time.Now() displayTree := makeDisplayTree(tree) readmeFilename, readmeRendered := renderReadmeAtTree(tree) cost := time.Since(start).Nanoseconds() @@ -127,6 +135,10 @@ func httpHandleRepoTree(writer http.ResponseWriter, request *http.Request, param return } formattedHTML = template.HTML(formattedHTMLStr.Bytes()) //#nosec G203 + cost := time.Since(start).Nanoseconds() + + commitPathFileHTMLCache.Set(cacheHandle, formattedHTML, cost) + params["file_contents"] = formattedHTML renderTemplate(writer, "repo_tree_file", params) @@ -138,7 +150,6 @@ func httpHandleRepoTree(writer http.ResponseWriter, request *http.Request, param return } - start := time.Now() displayTree := makeDisplayTree(target) readmeFilename, readmeRendered := renderReadmeAtTree(target) cost := time.Since(start).Nanoseconds() @@ -148,7 +159,7 @@ func httpHandleRepoTree(writer http.ResponseWriter, request *http.Request, param ReadmeFilename: readmeFilename, ReadmeRendered: readmeRendered, } - treeReadmeCache.Set(cacheHandle, entry, cost) + fmt.Println(treeReadmeCache.Set(cacheHandle, entry, cost)) params["readme_filename"], params["readme"] = readmeFilename, readmeRendered params["files"] = displayTree |