chore (rewrite): improve loading speed on new release

This commit is contained in:
MickaelK 2024-07-19 07:54:15 +10:00
parent 9a45dc000a
commit 27f475d358
6 changed files with 68 additions and 2 deletions

View file

@ -8,6 +8,10 @@ build_init:
go generate -x ./server/...
build_frontend:
make build_frontend_old
cd public && make compress
build_frontend_old:
NODE_ENV=production npm run build
mkdir -p ./server/ctrl/static/www/canary/
cp -R ./public/assets ./server/ctrl/static/www/canary/

View file

@ -5,6 +5,8 @@ compress:
find . -type f -name '*.js' | xargs gzip -f -k --best
find . -type f -name '*.css' | xargs brotli -f -k
find . -type f -name '*.css' | xargs gzip -f -k
find . -type f -name '*.svg' | xargs brotli -f -k
find . -type f -name '*.svg' | xargs gzip -f -k
clean:
find . -name '*.gz' -exec rm {} \;

View file

@ -120,6 +120,6 @@
"YES": "oui",
"YOU_CANT_DO_THAT": "vous ne pouvez pas faire :)",
"YOUR_EMAIL_ADDRESS": "votre adresse email",
"YOUR_FILES": "vos fichiers",
"YOUR_FILES": "vos données",
"YOUR_MASTER_PASSWORD": "votre mot de passe principal"
}

View file

@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" version="1.1">
<rect height="512" rx="20%" width="512" style="fill:#466372;"/>
<path d="m 247.01004,112.61622 c -47.6307,0 -86.28859,37.63241 -86.42745,84.13081 h 0.44865 c 49.25434,-0.42726 86.21379,42.72771 86.96152,77.49736 -1.06817,-35.42125 38.16652,-76.90984 85.45541,-77.46529 -0.12821,-46.50911 -38.79678,-84.14151 -86.4488,-84.1522 z m 86.44881,84.1522 v 0.23498 c -59.81879,2.63844 -85.90404,51.77527 -85.64768,77.04872 0.47001,48.3998 -25.98911,90.98863 -91.03135,91.24498 l 177.76856,-0.6409 c 47.74821,0 86.44882,-36.93809 86.44882,-83.54332 0,-46.60525 -38.70061,-84.38719 -86.44882,-84.38719 h -1.06818 z m -85.72245,77.33712 c -1.22841,-33.31692 -33.11395,-76.74964 -87.17516,-77.05941 v -0.25634 c -47.56663,0.24566 -85.989494,37.94218 -86.00018,84.38717 0,46.60524 38.27333,84.38721 81.7274,84.17357 77.12349,-0.37386 92.67637,-57.98148 91.44794,-91.24499 z" fill="none" stroke="#f2f3f5" stroke-linejoin="round" stroke-width="35px" style="stroke:#fafafa;stroke-width:50;stroke-opacity:0.85"/>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

View file

@ -7,7 +7,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<link rel="stylesheet" href="assets/css/designsystem.css">
<link rel="stylesheet" href="custom.css">
<link rel="icon" href="favicon.ico">
<link rel="icon" href="assets/logo/favicon.svg">
<title></title>
</head>
<body>

View file

@ -223,6 +223,62 @@ func ServeFrontofficeHandler(ctx *App, res http.ResponseWriter, req *http.Reques
http.Redirect(res, req, URL_SETUP, http.StatusTemporaryRedirect)
return
}
preloadScripts := []string{
"/assets/boot/router_frontoffice.js", "/assets/boot/ctrl_boot_frontoffice.js",
"/assets/lib/skeleton/index.js", "/assets/lib/skeleton/router.js", "/assets/lib/skeleton/lifecycle.js",
"/assets/lib/vendor/rxjs/rxjs.min.js", "/assets/lib/vendor/rxjs/rxjs-ajax.min.js", "/assets/lib/vendor/rxjs/rxjs-shared.min.js",
"/assets/lib/rx.js", "/assets/lib/ajax.js",
"/assets/lib/path.js", "/assets/lib/error.js", "/assets/lib/assert.js",
"/assets/lib/dom.js", "/assets/lib/animate.js",
"/assets/components/loader.js", "/assets/components/modal.js", "/assets/components/notification.js",
"/assets/components/icon.js",
}
turl := TrimBase(url)
if strings.HasPrefix(turl, "/login") {
preloadScripts = append(
preloadScripts,
"/assets/pages/ctrl_connectpage.js",
"/assets/pages/connectpage/ctrl_form.js", "/assets/pages/connectpage/ctrl_forkme.js",
"/assets/pages/connectpage/ctrl_poweredby.js",
"/assets/pages/connectpage/model_config.js", "/assets/pages/connectpage/model_backend.js", "/assets/pages/connectpage/ctrl_form_state.js",
"/assets/lib/form.js", "/assets/lib/settings.js", "/assets/lib/random.js", "/assets/helpers/log.js",
"/assets/model/session.js", "/assets/pages/adminpage/model_release.js",
"/assets/components/form.js",
"/assets/pages/ctrl_error.js",
)
} else if strings.HasPrefix(turl, "/files/") {
preloadScripts = append(
preloadScripts,
"/assets/pages/filespage/ctrl_filesystem.js", "/assets/pages/filespage/modal_share.js",
"/assets/pages/filespage/ctrl_upload.js", "/assets/components/sidebar.js", "/assets/components/breadcrumb.js",
"/assets/lib/form.js", "/assets/components/dropdown.js", "/assets/components/decorator_shell_filemanager.js",
"/assets/lib/random.js",
"/assets/pages/filespage/ctrl_submenu.js", "/assets/pages/filespage/ctrl_newitem.js",
"/assets/pages/filespage/cache.js", "/assets/pages/ctrl_filespage.js",
"/assets/pages/adminpage/model_release.js", "/assets/pages/filespage/modal_embed.js",
"/assets/pages/filespage/thing.js", "/assets/pages/ctrl_error.js", "/assets/pages/filespage/model_virtual_layer.js",
"/assets/pages/filespage/model_files.js", "/assets/pages/filespage/helper.js",
"/assets/pages/filespage/model_acl.js", "/assets/pages/filespage/state_config.js",
"/assets/pages/filespage/state_newthing.js", "/assets/pages/filespage/state_selection.js",
"/assets/pages/filespage/modal_delete.js", "/assets/pages/filespage/modal_rename.js", "/assets/pages/filespage/modal_tag.js", "/assets/pages/filespage/modal_embed.js",
"/assets/components/form.js",
"/assets/helpers/log.js", "/assets/lib/error.js", "/assets/model/config.js",
"/assets/lib/assert.js", "/assets/model/session.js", "/assets/lib/store.js",
"/assets/pages/filespage/state_config.js",
)
}
header := res.Header()
for _, href := range preloadScripts {
header.Add("Link", fmt.Sprintf(`<%s>; rel="preload"; as="script"; crossorigin="anonymous";`, WithBase(href)))
}
header.Add("Link", `<`+WithBase("/about")+`>; rel="preload"; as="fetch"; crossorigin="use-credentials";`)
ServeIndex("index.frontoffice.html")(ctx, res, req)
}