>백엔드 개발 >Golang >Go 템플릿을 동적으로 부분적으로 새로 고칠 수 있나요?

Go 템플릿을 동적으로 부분적으로 새로 고칠 수 있나요?

Linda Hamilton
Linda Hamilton원래의
2024-12-28 21:55:13950검색

Can Go Templates Be Dynamically Partially Refreshed?

Go에서 동적 부분 템플릿 새로 고침

질문:

동적으로 새로 고침이 가능합니까? 변수가 있는 경우 Go 템플릿의 특정 부분만 업데이트?

답변:

Go의 기본 템플릿 엔진은 기본적으로 이 기능을 지원하지 않지만 사용자 정의 구현은 가능합니다. 단계별 가이드는 다음과 같습니다.

1. 템플릿 리팩토링:

{{define "name"}} 및 {{template "name"}} 작업을 사용하여 주소 배열을 고유한 템플릿으로 렌더링하는 템플릿을 분리합니다.

2. 핸들러 수정/생성:

독립형 주소 템플릿을 독점적으로 실행하고 해당 HTML을 응답에 직접 출력하는 핸들러를 만듭니다. 이 핸들러는 전체 페이지와 부분 템플릿을 모두 처리하거나 주소 템플릿에만 전념할 수 있습니다.

3. 클라이언트 측 수정:

주소 배열을 업데이트해야 하는 경우 주소 템플릿을 렌더링하는 핸들러에 대한 AJAX 호출을 트리거합니다. 응답을 받으면 Address 요소의 래퍼 태그 내의 콘텐츠를 응답 HTML로 바꿉니다.

다음은 AJAX 호출 및 DOM 조작을 위한 샘플 JavaScript 코드입니다.

var e = document.getElementById("addressees");
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
    if (xhr.readyState == 4 && xhr.status == 200) {
        e.outerHTML = xhr.responseText;
    }
}
xhr.open("GET", "path-to-addresses-render", true);
try {
    xhr.send();
} catch (err) {
    // Handle error
}

추가 참고:

Gowut와 같은 타사 라이브러리는 부분 템플릿에 대해 유사한 기능을 제공합니다. 새로 고치다. 자세한 내용은 Gowut 소스 코드, 특히 js.go 파일 내의 rerenderComp() JavaScript 함수를 참조하세요.

위 내용은 Go 템플릿을 동적으로 부분적으로 새로 고칠 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.