ホームページ >バックエンド開発 >Golang >Go テンプレートは部分的に動的に更新できますか?

Go テンプレートは部分的に動的に更新できますか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-28 21:55:13946ブラウズ

Can Go Templates Be Dynamically Partially Refreshed?

Go での動的部分テンプレート更新

質問:

動的に更新することは可能ですか?変数が指定されている場合、Go テンプレートの特定の部分のみ更新情報?

答え:

Go のデフォルトのテンプレート エンジンはこの機能をネイティブにサポートしていませんが、カスタム実装は可能です。ステップバイステップのガイドは次のとおりです:

1.テンプレートのリファクタリング:

{{define "name"}} アクションと {{template "name"}} アクションを使用して、Address 配列を個別のテンプレートにレンダリングするテンプレートを分離します。

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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。