Web 围棋中的交互式网页

Web 围棋中的交互式网页,web,go,server,webpage,interactive,Web,Go,Server,Webpage,Interactive,您知道是否可以在Go中创建交互式网页吗? 例如,是否有一个或多个按钮,或一个组合框,用于刷新页面,并根据选择过滤数据? 我试着去寻找,但没有找到任何相关的 提前感谢。不,您不能在Go中编程交互式网页。这是因为Go程序在服务器上运行,而不是在web浏览器中运行 要进行交互,必须编写JavaScript程序,与服务器上的Go程序进行通信 Go程序在某种程度上与交互式web应用程序有关,但交互性来自JavaScript部分。浏览器无法直接运行Go代码。客户端的交互式网页使用不同的技术,如HTML、Ja

您知道是否可以在Go中创建交互式网页吗? 例如,是否有一个或多个按钮,或一个组合框,用于刷新页面,并根据选择过滤数据? 我试着去寻找,但没有找到任何相关的


提前感谢。

不,您不能在Go中编程交互式网页。这是因为Go程序在服务器上运行,而不是在web浏览器中运行

要进行交互,必须编写JavaScript程序,与服务器上的Go程序进行通信


Go程序在某种程度上与交互式web应用程序有关,但交互性来自JavaScript部分。

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

然而,在客户端使用上述语言,在服务器端执行Go中的所有操作,这是一个可行的技术堆栈

尽管如此,仍然有一些框架允许您在Go中编写所有内容,它们将Go代码转换为客户端理解/支持的语言,或者为客户端生成与服务器端Go代码交互的代码

对于后者,有(披露:我是作者)。使用Gowut,您可以在Go中编写所有内容(客户端和服务器端),Gowut会动态生成必要的客户端代码,并负责生成的客户端代码和Go服务器代码之间的通信。这里有一个Gowut的现场演示,您可以在这里查看并了解它是什么:

Gowut创建完全动态的网页,呈现内容,无需重新加载页面即可更改内容。尽管如此,只要使用Go代码,一切都可以完成,但如果您有冲动或需要,您可以使用HTML/JS/CSS代码来增加趣味性

对于前者,在Go 1.11中添加了和。GopherJS将Go代码编译为纯Javascript代码,因此它不是真正的web框架,但您可以用Go编写客户端代码。您仍然需要处理服务器端代码以及它们之间的通信。WebAssembly目标的工作原理与GopherJS类似:您编写Go代码,该代码将被编译为能够在浏览器中运行的表单(由浏览器运行)。链接的wiki页面包含如何实现/使用此功能的所有详细信息

标准库中还有一个功能强大的模板引擎:。尽管模板只在服务器端执行,但在一些基本Javascript代码和AJAX调用(或WebSocket)的帮助下,您可以使客户端具有动态性和交互性。有关示例,请参见以下问题和答案:


您可以使用Go和Gin-Gonic框架的强大功能实现这一点-请查看此处的简单易用文章:

“不,您不能在Go中编程交互式网页。这是因为Go程序在服务器上运行,而不是在web浏览器中运行

要进行交互,必须编写JavaScript程序,与服务器上的Go程序进行通信

Go程序在某种程度上与交互式web应用程序有关,但交互性来自JavaScript部分。“”


我相信答案是肯定的,Go能够创建交互式网站,go能够读取http。请求,因此通过该输入,您可以通过go代码定义一些高级go编程接下来会发生什么。go本身在理论上被设计为一种web服务器端编程语言,但其输出介质当然是web

我找到了我自己问题的长答案。仅使用Go不可能直接编程一个交互式网站,而是使用GopherJS()(它是Go to JS的一个编译器)和Go创建完全交互式网站是非常可能的。 尽管该承诺已提前完成,且目前尚未分配可用信息(2018/09/25)

我感谢你们所有人的努力(好的和坏的)


感谢这一部分“对于前者,有GopherJS。GopherJS将Go代码编译为纯Javascript代码,因此它不是真正的web框架,但您可以用它编写客户端代码。您仍然需要处理服务器端代码以及它们之间的通信。”帮助分配,

您必须使用Javascript,或者使用一种可转换为JavaScript的语言来创建交互式网页。TMK,Go没有任何Transpiler将其转换为JS。谢谢您的回答。是否可以使用GO来管理数据和JS来显示它们,并在需要时与GO交互以获取新数据?当然,您可以使用Golang编写一个web服务器,它可以向web客户端提供JSON和/或HTML。在“服务器呈现的应用程序”和SPA架构之间有很大的选择。因此,您有一个用Golang编写的服务器和一个用JS编写的web客户端。是一个可能的解决方案,它可以透明地转到javascript。否则,你可能会使用一些东西,比如如果你在寻找cms。谢谢,我会看看Gopherjs和FragmentaThanks,我已经开始使用Gowut了。您能告诉我使用哪个函数将数据存储在二维数组中吗?比如Excel/Calc(我试图以这种结构呈现数据,并根据我将在网页上添加的过滤器的使用方式进行更新)?提前谢谢。@azekirel555对于一个二维数组,我会使用一个。非常感谢,我要看看这个。