首頁 >後端開發 >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"}} 操作將渲染位址數組的模板分離為不同的模板。

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 等第三方函式庫為部分範本提供了類似的功能刷新。如需進一步參考,請查閱 Gwut 原始碼,特別是 js.go 檔案中的 rerenderComp() JavaScript 函數。

以上是Go模板可以動態部分刷新嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn