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 웹 프레임워크입니다. 웹페이지.
위 내용은 Go에서 템플릿 부분을 동적으로 업데이트하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!