当前位置: 首页 > 面试题库 >

Go中的交互式网页

陶淳
2023-03-14
问题内容

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

提前致谢。


问题答案:

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

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



 类似资料:
  • 原文:Interactive navigation 所有图形窗口都带有导航工具栏,可用于浏览数据集。 以下是工具栏底部的每个按钮的说明: Home(首页)、Forward(前进)和Back(后退)按钮: 这些类似于 Web 浏览器的前进和后退按钮。 它们用于在之前定义的视图之间来回浏览。 它们没有意义,除非你已经使用平移和缩放按钮访问了其他地方。 这类似于尝试在访问新页面之前单击 Web 浏览器上

  • 问题内容: 我正在尝试使用带有适当命令的命令自动创建开发Docker映像。我需要在命令中运行的脚本之一希望用户单击以阅读其许可协议。因此,有两个问题: ?中所有命令的输出在哪里? 可以与上述命令进行交互的解决方案是什么?现在,命令陷入僵局,要求用户无限循环输入。 问题答案: 在构建过程中,命令的输出显示在您的终端中。Docker构建过程是完全非交互的,因此您必须找到某种方式来自动接受这些条款(几乎

  • 我试图使用命令和适当的自动创建开发Docker映像。我需要在命令中运行的一个脚本希望用户单击并阅读他们的许可协议。因此有两个问题: 中所有 命令的输出在哪里? 有什么解决方案可以与上述命令交互?现在,命令只能在无限循环中向用户请求输入。

  • 你亦可以选择进行交互式的rebase。这种方法通常用于在向别处推送提交之前对它们进行重写。交互式rebase提供了一个简单易用的途径让你在和别人分享提交之前对你的提交进行分割、合并或者重排序。在把从其他开发者处拉取的提交应用到本地时,你也可以使用交互式rebase对它们进行清理。 如果你想在rebase的过程中对一部分提交进行修改,你可以在'git rebase'命令中加入'-i'或'--inte

  • web3-net包用来支持和以太坊节点旳网络属性的交互。 使用方法: var Net = require('web3-net'); // 当使用以太坊兼容浏览器时,"Personal.providers.givenProvider" 将自动设置 var net = new Net(Net.givenProvider || 'ws://some.local-or-remote.node:8546'

  • Git 自带的一些脚本可以使在命令行下工作更容易。 本节的几个互交命令可以帮助你将文件的特定部分组合成提交。 当你修改一组文件后,希望这些改动能放到若干提交而不是混杂在一起成为一个提交时,这几个工具会非常有用。 通过这种方式,可以确保提交是逻辑上独立的变更集,同时也会使其他开发者在与你工作时很容易地审核。 如果运行 git add 时使用 -i 或者 --interactive 选项,Git 将会