一尘不染

Go中的交互式网页

go

您是否知道可以在Go中创建交互式网页?例如,是否具有一个或多个按钮,或者一个组合框可以根据选择过滤正在刷新的数据的页面?我试图寻找它,但是没有找到任何相关的东西。

提前致谢。


阅读 442

收藏
2020-07-02

共1个答案

一尘不染

浏览器无法直接运行Go代码。客户端的交互式网页使用不同的技术,例如HTML,Javascript和CSS。

但是,在客户端使用上述语言并在服务器端使用Go执行所有操作是可行的技术堆栈。

话虽这么说,仍然有一些框架允许您用Go编写所有内容,它们将Go代码转换为客户端可以理解/支持的语言,或者为客户端生成与服务器端Go交互的代码码。

对于后者,有 Gowut (Go Web UI工具包)公开:我是作者
)。使用Gowut,您可以用Go编写所有内容(客户端和服务器端),而Gowut可以即时生成必要的客户端代码,并负责生成的客户端代码和Go服务器代码之间的通信。有一个Gowut的现场演示,您可以在此处查看并查看它的功能Gowut-功能展示

Gowut会创建完全动态的网页,内容将被呈现,并且可以更改而无需重新加载页面。而且,一切都可以简单地使用Go代码完成,但是您可以使用HTML / JS /
CSS代码来增添趣味性–如果您有需要或需要的话。

对于前者,在Go
1.11中添加了GopherJSGo的WebAssembly目标。GopherJS将Go代码编译为纯Javascript代码,因此它不是真正的Web框架,但是您可以使用Go语言编写客户端代码。您仍然必须照顾服务器端代码以及它们之间的通信。WebAssembly目标的工作方式与GopherJS类似:您编写Go代码,该代码将被编译成能够在浏览器中运行的形式(由浏览器运行)。链接的Wiki页面包含如何实现/使用它的所有详细信息。

标准库中还有一个功能强大的模板引擎:html/template。尽管模板仅在服务器端执行,但借助一些基本的Javascript代码和AJAX调用(或Websocket),您可以使客户端动态和交互式。

2020-07-02