From 14245a02f58730090a0f76f4c0fa06ce16a0c24a Mon Sep 17 00:00:00 2001 From: joerdav <joe.davidson.21111@gmail.com> Date: Thu, 27 Apr 2023 09:32:12 +0100 Subject: [PATCH] feat: lazy loading --- lazyload/bars.svg | 52 +++++++++ lazyload/handlers.go | 39 +++++++ lazyload/templates.templ | 27 +++++ lazyload/templates_templ.go | 212 ++++++++++++++++++++++++++++++++++++ lazyload/tokyo.png | Bin 0 -> 34557 bytes main.go | 7 ++ 6 files changed, 337 insertions(+) create mode 100644 lazyload/bars.svg create mode 100644 lazyload/handlers.go create mode 100644 lazyload/templates.templ create mode 100644 lazyload/templates_templ.go create mode 100644 lazyload/tokyo.png diff --git a/lazyload/bars.svg b/lazyload/bars.svg new file mode 100644 index 0000000..7cb07e6 --- /dev/null +++ b/lazyload/bars.svg @@ -0,0 +1,52 @@ +<svg width="16" height="16" viewBox="0 0 135 140" xmlns="http://www.w3.org/2000/svg" fill="#494949"> + <rect y="10" width="15" height="120" rx="6"> + <animate attributeName="height" + begin="0.5s" dur="1s" + values="120;110;100;90;80;70;60;50;40;140;120" calcMode="linear" + repeatCount="indefinite" /> + <animate attributeName="y" + begin="0.5s" dur="1s" + values="10;15;20;25;30;35;40;45;50;0;10" calcMode="linear" + repeatCount="indefinite" /> + </rect> + <rect x="30" y="10" width="15" height="120" rx="6"> + <animate attributeName="height" + begin="0.25s" dur="1s" + values="120;110;100;90;80;70;60;50;40;140;120" calcMode="linear" + repeatCount="indefinite" /> + <animate attributeName="y" + begin="0.25s" dur="1s" + values="10;15;20;25;30;35;40;45;50;0;10" calcMode="linear" + repeatCount="indefinite" /> + </rect> + <rect x="60" width="15" height="140" rx="6"> + <animate attributeName="height" + begin="0s" dur="1s" + values="120;110;100;90;80;70;60;50;40;140;120" calcMode="linear" + repeatCount="indefinite" /> + <animate attributeName="y" + begin="0s" dur="1s" + values="10;15;20;25;30;35;40;45;50;0;10" calcMode="linear" + repeatCount="indefinite" /> + </rect> + <rect x="90" y="10" width="15" height="120" rx="6"> + <animate attributeName="height" + begin="0.25s" dur="1s" + values="120;110;100;90;80;70;60;50;40;140;120" calcMode="linear" + repeatCount="indefinite" /> + <animate attributeName="y" + begin="0.25s" dur="1s" + values="10;15;20;25;30;35;40;45;50;0;10" calcMode="linear" + repeatCount="indefinite" /> + </rect> + <rect x="120" y="10" width="15" height="120" rx="6"> + <animate attributeName="height" + begin="0.5s" dur="1s" + values="120;110;100;90;80;70;60;50;40;140;120" calcMode="linear" + repeatCount="indefinite" /> + <animate attributeName="y" + begin="0.5s" dur="1s" + values="10;15;20;25;30;35;40;45;50;0;10" calcMode="linear" + repeatCount="indefinite" /> + </rect> +</svg> diff --git a/lazyload/handlers.go b/lazyload/handlers.go new file mode 100644 index 0000000..5fe3eef --- /dev/null +++ b/lazyload/handlers.go @@ -0,0 +1,39 @@ +package lazyload + +import ( + _ "embed" + "net/http" + "time" +) + +var ( + //go:embed tokyo.png + graphBytes []byte + //go:embed bars.svg + barsBytes []byte +) + +func Handlers(prefix string, mux *http.ServeMux) { + mux.HandleFunc(prefix+"/", index) + mux.HandleFunc(prefix+"/graph", graph) + mux.HandleFunc(prefix+"/bars.svg", bars) + mux.HandleFunc(prefix+"/tokyo.png", tokyo) +} + +func index(w http.ResponseWriter, r *http.Request) { + Index().Render(r.Context(), w) +} + +func graph(w http.ResponseWriter, r *http.Request) { + time.Sleep(2 * time.Second) + graphImage().Render(r.Context(), w) +} + +func bars(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Content-Type", "image/svg+xml") + w.Write(barsBytes) +} + +func tokyo(w http.ResponseWriter, r *http.Request) { + w.Write(graphBytes) +} diff --git a/lazyload/templates.templ b/lazyload/templates.templ new file mode 100644 index 0000000..8ff587f --- /dev/null +++ b/lazyload/templates.templ @@ -0,0 +1,27 @@ +package lazyload + +import "examples/shared" + +templ demo() { + <style> + .htmx-settling img { + opacity: 0; + } + img { + transition: opacity 300ms ease-in; + } + </style> + <div hx-get="/lazy-loading/graph" hx-trigger="load"><img alt="Result loading..." class="htmx-indicator" width="150" src="/lazy-loading/bars.svg"/></div> +} + +templ graphImage() { + <img alt="Tokyo Climate" src="/lazy-loading/tokyo.png"/> +} + +templ Index() { + @shared.Layout("Lazy Loading") { + <h2 class="title">Lazy Loading</h2> + @demo() + } +} + diff --git a/lazyload/templates_templ.go b/lazyload/templates_templ.go new file mode 100644 index 0000000..359ef59 --- /dev/null +++ b/lazyload/templates_templ.go @@ -0,0 +1,212 @@ +// Code generated by templ@(devel) DO NOT EDIT. + +package lazyload + +//lint:file-ignore SA4006 This context is only used if a nested component is present. + +import "github.com/a-h/templ" +import "context" +import "io" +import "bytes" + +// GoExpression +import "examples/shared" + +func demo() templ.Component { + return templ.ComponentFunc(func(ctx context.Context, w io.Writer) (err error) { + templBuffer, templIsBuffer := w.(*bytes.Buffer) + if !templIsBuffer { + templBuffer = templ.GetBuffer() + defer templ.ReleaseBuffer(templBuffer) + } + ctx = templ.InitializeContext(ctx) + var_1 := templ.GetChildren(ctx) + if var_1 == nil { + var_1 = templ.NopComponent + } + ctx = templ.ClearChildren(ctx) +// RawElement + _, err = templBuffer.WriteString("<style>") + if err != nil { + return err + } +// Text +var_2 := ` + .htmx-settling img { + opacity: 0; + } + img { + transition: opacity 300ms ease-in; + } + ` +_, err = templBuffer.WriteString(var_2) +if err != nil { + return err +} + _, err = templBuffer.WriteString("</style>") + if err != nil { + return err + } + // Element (standard) + _, err = templBuffer.WriteString("<div") + if err != nil { + return err + } + // Element Attributes + _, err = templBuffer.WriteString(" hx-get=\"/lazy-loading/graph\"") + if err != nil { + return err + } + _, err = templBuffer.WriteString(" hx-trigger=\"load\"") + if err != nil { + return err + } + _, err = templBuffer.WriteString(">") + if err != nil { + return err + } + // Element (void) + _, err = templBuffer.WriteString("<img") + if err != nil { + return err + } + // Element Attributes + _, err = templBuffer.WriteString(" alt=\"Result loading...\"") + if err != nil { + return err + } + _, err = templBuffer.WriteString(" class=\"htmx-indicator\"") + if err != nil { + return err + } + _, err = templBuffer.WriteString(" width=\"150\"") + if err != nil { + return err + } + _, err = templBuffer.WriteString(" src=\"/lazy-loading/bars.svg\"") + if err != nil { + return err + } + _, err = templBuffer.WriteString(">") + if err != nil { + return err + } + _, err = templBuffer.WriteString("</div>") + if err != nil { + return err + } + if !templIsBuffer { + _, err = io.Copy(w, templBuffer) + } + return err + }) +} + +func graphImage() templ.Component { + return templ.ComponentFunc(func(ctx context.Context, w io.Writer) (err error) { + templBuffer, templIsBuffer := w.(*bytes.Buffer) + if !templIsBuffer { + templBuffer = templ.GetBuffer() + defer templ.ReleaseBuffer(templBuffer) + } + ctx = templ.InitializeContext(ctx) + var_3 := templ.GetChildren(ctx) + if var_3 == nil { + var_3 = templ.NopComponent + } + ctx = templ.ClearChildren(ctx) + // Element (void) + _, err = templBuffer.WriteString("<img") + if err != nil { + return err + } + // Element Attributes + _, err = templBuffer.WriteString(" alt=\"Tokyo Climate\"") + if err != nil { + return err + } + _, err = templBuffer.WriteString(" src=\"/lazy-loading/tokyo.png\"") + if err != nil { + return err + } + _, err = templBuffer.WriteString(">") + if err != nil { + return err + } + if !templIsBuffer { + _, err = io.Copy(w, templBuffer) + } + return err + }) +} + +func Index() templ.Component { + return templ.ComponentFunc(func(ctx context.Context, w io.Writer) (err error) { + templBuffer, templIsBuffer := w.(*bytes.Buffer) + if !templIsBuffer { + templBuffer = templ.GetBuffer() + defer templ.ReleaseBuffer(templBuffer) + } + ctx = templ.InitializeContext(ctx) + var_4 := templ.GetChildren(ctx) + if var_4 == nil { + var_4 = templ.NopComponent + } + ctx = templ.ClearChildren(ctx) + // TemplElement + var_5 := templ.ComponentFunc(func(ctx context.Context, w io.Writer) (err error) { + templBuffer, templIsBuffer := w.(*bytes.Buffer) + if !templIsBuffer { + templBuffer = templ.GetBuffer() + defer templ.ReleaseBuffer(templBuffer) + } + // Element (standard) + _, err = templBuffer.WriteString("<h2") + if err != nil { + return err + } + // Element Attributes + _, err = templBuffer.WriteString(" class=\"title\"") + if err != nil { + return err + } + _, err = templBuffer.WriteString(">") + if err != nil { + return err + } + // Text + var_6 := `Lazy Loading` + _, err = templBuffer.WriteString(var_6) + if err != nil { + return err + } + _, err = templBuffer.WriteString("</h2>") + if err != nil { + return err + } + // Whitespace (normalised) + _, err = templBuffer.WriteString(` `) + if err != nil { + return err + } + // TemplElement + err = demo().Render(ctx, templBuffer) + if err != nil { + return err + } + if !templIsBuffer { + _, err = io.Copy(w, templBuffer) + } + return err + }) + err = shared.Layout("Lazy Loading").Render(templ.WithChildren(ctx, var_5), templBuffer) + if err != nil { + return err + } + if !templIsBuffer { + _, err = io.Copy(w, templBuffer) + } + return err + }) +} + diff --git a/lazyload/tokyo.png b/lazyload/tokyo.png new file mode 100644 index 0000000000000000000000000000000000000000..6ccc936b091087441803ccecbf47078dd1aa682e GIT binary patch literal 34557 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 literal 0 HcmV?d00001 diff --git a/main.go b/main.go index 7e29c90..1b58493 100644 --- a/main.go +++ b/main.go @@ -6,6 +6,7 @@ import ( "examples/clicktoload" "examples/deleterow" "examples/editrow" + "examples/lazyload" "log" "net/http" @@ -65,4 +66,10 @@ var examples = []Example{ Slug: "edit-row", Handlers: editrow.Handlers, }, + { + Name: "Lazy Loading", + Desc: "Demonstrates how to lazy load content", + Slug: "lazy-loading", + Handlers: lazyload.Handlers, + }, }