diff options
author | Max Magorsch <arzano@gentoo.org> | 2020-06-22 19:33:07 +0200 |
---|---|---|
committer | Max Magorsch <arzano@gentoo.org> | 2020-06-22 19:33:07 +0200 |
commit | b9d384f9d788f83c4b21b708bc5920c58efb3ce5 (patch) | |
tree | 0856ec2b5eb420f5b2a4dd86a6fcbb90508573dc /pkg/app/list | |
parent | Improve the performance of the importer (diff) | |
download | archives-b9d384f9d788f83c4b21b708bc5920c58efb3ce5.tar.gz archives-b9d384f9d788f83c4b21b708bc5920c58efb3ce5.tar.bz2 archives-b9d384f9d788f83c4b21b708bc5920c58efb3ce5.zip |
Cache pages to improve the performance
Some pages as the landing page or the lists
overview page are cached now to improve the
performance.
Signed-off-by: Max Magorsch <arzano@gentoo.org>
Diffstat (limited to 'pkg/app/list')
-rw-r--r-- | pkg/app/list/browse.go | 17 | ||||
-rw-r--r-- | pkg/app/list/show.go | 19 |
2 files changed, 24 insertions, 12 deletions
diff --git a/pkg/app/list/browse.go b/pkg/app/list/browse.go index fdc3ab1..5d8457e 100644 --- a/pkg/app/list/browse.go +++ b/pkg/app/list/browse.go @@ -1,6 +1,7 @@ package list import ( + "archives/pkg/cache" "archives/pkg/config" "archives/pkg/database" "archives/pkg/models" @@ -8,7 +9,15 @@ import ( ) func Browse(w http.ResponseWriter, r *http.Request) { + templateData := cache.Get("/lists") + if templateData == nil { + http.NotFound(w,r) + return + } + renderBrowseTemplate(w, templateData) +} +func ComputeBrowseTemplateData() interface{} { var res []struct { Name string MessageCount int @@ -19,8 +28,7 @@ func Browse(w http.ResponseWriter, r *http.Request) { Select(&res) if err != nil { - http.NotFound(w,r) - return + return nil } var currentMailingLists []models.MailingList @@ -40,18 +48,15 @@ func Browse(w http.ResponseWriter, r *http.Request) { } } - browseData := struct { + return struct { CurrentMailingLists []models.MailingList FrozenArchives []models.MailingList }{ CurrentMailingLists: currentMailingLists, FrozenArchives: frozenArchives, } - - renderBrowseTemplate(w, browseData) } - func contains(s []string, e string) bool { for _, a := range s { if a == e { diff --git a/pkg/app/list/show.go b/pkg/app/list/show.go index d90f236..5231b5b 100644 --- a/pkg/app/list/show.go +++ b/pkg/app/list/show.go @@ -1,6 +1,7 @@ package list import ( + "archives/pkg/cache" "archives/pkg/database" "archives/pkg/models" "github.com/go-pg/pg/v10/orm" @@ -9,9 +10,17 @@ import ( ) func Show(w http.ResponseWriter, r *http.Request) { - listName := strings.ReplaceAll(r.URL.Path, "/", "") + templateData := cache.Get("/" + listName + "/") + if templateData == nil { + http.NotFound(w,r) + return + } + renderShowTemplate(w, listName, templateData) +} + +func ComputeShowTemplateData(listName string) interface{} { var res []struct { CombinedDate string MessageCount int @@ -36,9 +45,7 @@ func Show(w http.ResponseWriter, r *http.Request) { Select(&res) if err != nil { - http.NotFound(w, r) - return + return nil } - - renderShowTemplate(w, listName, res) -} + return res +}
\ No newline at end of file |