Golang отображает статический HTML-шаблон в ожидании загрузки данных

У меня есть настроенный маршрут, который отвечает динамическим шаблоном HTML.

package main

import (
    "net/http"
    "html/template"
)

func index(w http.ResponseWriter, r *http.Request) {
    showWwResult, _ := GetWw()
    showHoursResult, _ := GetHours()

    type Data struct {
        ShowWwResult   []IssueResult
        ShowHoursResult Page
    }

    data := Data{showWwResult, showHoursResult}

    var templates = template.Must(template.ParseFiles("templates/index.html", "templates/ww.html", "templates/hours.html"))
    templates.ExecuteTemplate(w, "indexPage", data)
}

Моя проблема в том, что сбор данных занимает очень много времени, и страница ожидает его возврата, прежде чем отображать HTML.

Как я могу заставить его вернуть что-то, что угодно, пока я жду GetWw() а также GetHours() заканчивать? Есть ли способ отобразить статическую часть моего HTML-шаблона, а затем заполнить страницу ShowWwResult а также ShowHoursResult когда они будут готовы?

1 ответ

Решение

Нет, лучший способ - обслуживать шаблон, а затем заполнять его с помощью вызовов ajax к конечной точке, которая возвращает json с данными, которые вы хотите использовать.

Другие вопросы по тегам