Go中的交互式网页

问题描述 投票:-1回答:5

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

提前致谢。

web go server webpage interactive
5个回答
6
投票

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

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

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

对于后者,有Gowut (Go Web UI Toolkit)(披露:我是作者)。使用Gowut,您可以在Go(客户端和服务器端)中编写所有内容,Gowut即时生成必要的客户端代码,它负责生成的客户端代码和Go服务器代码之间的通信。有一个Gowut的现场演示,你可以查看它,看看它的功能是什么:Gowut - Showcase of Features

Gowut创建了完全动态的网页,内容已呈现,无需重新加载页面即可更改内容。而且,一切都可以简单地使用Go代码完成,但您可以使用HTML / JS / CSS代码来增加趣味 - 如果您有这样做的冲动或需要。

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

标准库中还有一个强大的模板引擎:html/template。虽然模板只在服务器端执行,但在一些基本的Javascript代码和AJAX调用(或websockets)的帮助下,您可以使客户端动态和交互。例如,请参阅以下问题和答案:

Creating load more button in Golang with templates

Dynamically refresh a part of the template when a variable is updated golang

Referencing Go array in Javascript


0
投票

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

要做一些交互式的事情,你必须编写与服务器上的Go程序通信的JavaScript程序。

Go程序以某种方式涉及交互式Web应用程序,但交互性来自JavaScript部分。


0
投票

你可以使用Go和Gin Gonic框架的强大功能 - 在这里查看简单而方便的文章:https://semaphoreci.com/community/tutorials/building-go-web-applications-and-microservices-using-gin


0
投票

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

要做一些交互式的事情,你必须编写与服务器上的Go程序通信的JavaScript程序。

Go程序以某种方式涉及交互式Web应用程序,但交互性来自JavaScript部分。 “”

我相信答案实际上是肯定Go能够创建交互式网站,go能够从http.Request读取,所以从这个输入你可以通过你的Go Code定义接下来的一些Advanced Go编程会发生什么.Go本身从理论上讲,它是一种Web服务器端编程语言,但其输出媒介当然​​是Web。


0
投票

我找到了自己问题的答案。使用GopherJS(https://github.com/gopherjs/gopherjs)(Go to JS中的编译器)直接编程只使用Go BUT的交互式网站是不可能的,并且Go很有可能创建完全交互式的网站。虽然这项工作已经取得进展,但目前尚未提供任何信息(2018/09/25)

我感谢你们的努力(好的和坏的)。

谢谢你的这一部分“对于前者,有GopherJS.GopherJS编译Go代码到纯Javascript代码,所以它不是一个真正的Web框架,但你可以用Go编写客户端代码。你还是要照顾服务器代码和他们之间的沟通。“帮助分配,

© www.soinside.com 2019 - 2024. All rights reserved.