在 Go 中動態更新模板部分
在 Go 中,修改變數時刷新模板的一部分的能力並不是天生的支持。若要實現此功能,必須實作自訂解決方案。
實作步驟:
詳細步驟:
模板重構:
{{define "Addresses"}} <ul> {{range $key, $value := .Addresses}} <li>{{ $key }}: {{ $value }}</li> {{end}} </ul> {{end}}
處理程序修改:
import "net/http" func AddressesHandler(w http.ResponseWriter, r *http.Request) { data := map[string]string{"Addresses": []string{"Address1", "Address2"}} t, err := template.New("AddressesTemplate").Parse("{{define "Addresses"}}{{.Addresses}}{{end}}") if err != nil { http.Error(w, http.StatusInternalServerError.String(), http.StatusInternalServerError) return } err = t.ExecuteTemplate(w, "Addresses", data) if err != nil { http.Error(w, http.StatusInternalServerError.String(), http.StatusInternalServerError) return } }
客戶端實作:
var addressesElement = document.getElementById("addresses"); function refreshAddresses() { var xhr = new XMLHttpRequest(); xhr.open("GET", "/addresses", true); xhr.onreadystatechange = function() { if (xhr.readyState === 4 && xhr.status === 200) { addressesElement.outerHTML = xhr.responseText; } }; xhr.send(); }
Gowut是一個 Go Web 框架,為動態部分更新提供類似的功能網頁。
以上是如何在 Go 中動態更新模板部分?的詳細內容。更多資訊請關注PHP中文網其他相關文章!