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 с данными, которые вы хотите использовать.