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中文網其他相關文章!