no-cache for templates, tune map position

This commit is contained in:
Joerg Lehmann 2021-06-07 11:19:10 +02:00
parent 992fb3d4f1
commit 6179b81f71
4 changed files with 38 additions and 4 deletions

30
main.go
View File

@ -9,6 +9,24 @@ import (
"time"
)
var epoch = time.Unix(0, 0).Format(time.RFC1123)
var noCacheHeaders = map[string]string{
"Expires": epoch,
"Cache-Control": "no-cache, private, max-age=0",
"Pragma": "no-cache",
"X-Accel-Expires": "0",
}
var etagHeaders = []string{
"ETag",
"If-Modified-Since",
"If-Match",
"If-None-Match",
"If-Range",
"If-Unmodified-Since",
}
func serveTemplate(w http.ResponseWriter, r *http.Request) {
logit("Called URL: " + r.URL.Path)
// wennn kein File angegeben ist: index.html
@ -77,6 +95,18 @@ func serveTemplate(w http.ResponseWriter, r *http.Request) {
// because of caching, we need to set the Last-Modified header
w.Header().Set("Last-Modified", time.Now().Format(http.TimeFormat))
// Delete any ETag headers that may have been set
for _, v := range etagHeaders {
if r.Header.Get(v) != "" {
r.Header.Del(v)
}
}
// Set our NoCache headers
for k, v := range noCacheHeaders {
w.Header().Set(k, v)
}
if err := tmpl.ExecuteTemplate(w, "layout", &data); err != nil {
logit(err.Error())
http.Error(w, http.StatusText(500), 500)

View File

@ -5,7 +5,7 @@
<script src="https://unpkg.com/leaflet@1.7.1/dist/leaflet.js"
integrity="sha512-XQoYMqMTK8LvdxXYG3nZ448hOEQiglfqkJs1NOQV44cWnUrBc8PkAOcXy20w0vlaXaVUearIOBhiXZ5V3ynxwA=="
crossorigin=""></script>
<script type="text/javascript" src="/static/js/Map.SelectArea.min.js"></script>
<script src="/static/js/Map.SelectArea.min.js"></script>
{{end}}
{{define "body_content"}}
{{ if ne .UserName "" }}

View File

@ -3,7 +3,11 @@ html,body {
}
.section,.container {
height: 85%;
height: calc(100% - 24px);
}
.daterangepicker {
height: 24px;
}
hr {
@ -80,7 +84,7 @@ input:focus,
}
.mapbig {
height: 100%;
height: calc(100% - 100px);
}
.slidecontainer {

View File

@ -135,7 +135,7 @@ function refreshDatapoints(deveui, start, stop) {
$('#datetimeslider').hide();
$('#chart').html(`<article class="message is-danger">
<div class="message-body">
Keine Messpunkte f&uuml;r diese Zeitperiode
Keine GPS-Messpunkte f&uuml;r diese Zeitperiode
</div>
</article>`);
$('#chart').show();