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中文网其他相关文章!