回答
浏览器无法直接运行Go代码。客户端的交互式网页使用不同的技术,例如HTML,Javascript和CSS。
但是,在客户端使用上述语言并在服务器端执行所有操作都是可行的技术堆栈。
这就是说,仍然有一些框架可以让你在Go中编写所有的东西,并且它们将Go代码转换为客户端理解/支持的语言,或者它们为客户端生成与服务器端的Go代码。
对于后者,有Gowut (Go Web UI Toolkit)(披露:我是作者)。使用Gowut,您可以在Go中编写所有内容(客户端和服务器端),并且Gowut可以即时生成必要的客户端代码,并且负责生成的客户端代码与Go服务器代码之间的通信。有一个Gowut现场演示,你可以看看它的功能:Gowut - Showcase of Features
Gowut创建完全动态的网页,内容呈现,并可以更改,无需重新加载页面。尽管如此,只需使用Go代码即可完成所有工作,但是您可以使用HTML/JS/CSS代码来增强功能 - 如果您有这种需求或需要这样做。
对于前者,有GopherJS。 GopherJS将Go代码编译为纯Javascript代码,所以它不是一个真正的Web框架,但是您可以用Go编写客户端代码。您仍然需要照顾服务器端代码以及它们之间的通信。
标准库中还有一个功能强大的模板引擎: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
感谢您的回答,我已经开始使用Gowut。你能否告诉我有关使用哪个函数将数据存储在二维数组中 - 比如使用Excel/Calc(我试图在这种结构中呈现数据并根据我如何使用某些过滤器进行更新)在网页上添加)?提前致谢。 – azekirel555
@ azekirel555对于二维数组,我使用['gwu.Table'](https://godoc.org/github.com/icza/gowut/gwu#Table)。 – icza
非常感谢,我要看看这个。 – azekirel555
不,您不能在Go中编程交互式网页。这是因为Go程序在服务器上运行,而不是在Web浏览器中运行。
要做一些互动的事情,你必须编写一个JavaScript程序,与服务器上的Go程序通信。
Go程序以某种方式与交互式Web应用程序有关,但交互性来自JavaScript部分。
- 1. 创建交互式网页设计
- 2. 交互式网络x Python中的图形网页
- 3. 交互式网格WPF
- 4. 网页上的实时交互
- 5. 在网页中创建交互式地图
- 6. Go-Ethereum:Android智能合约交互问题
- 7. PHP - 创建网页的非交互式副本,可能是PDF?
- 8. django网站上的交互式壳牌
- 9. 使用python与网页交互
- 10. C++与动态网页交互?
- 11. Windows中的交互式cmd.exe
- 12. Markdown中的交互式ggplot
- 13. javascript中的交互式grep?
- 14. Cocoa Touch UIWebView - 以编程方式与网页交互
- 15. 如何从PHP网页执行交互式shell程序
- 16. 如何使用HTML5在网页上制作交互式视频?
- 17. 交互式Python网络/图形建模
- 18. AS3 - 交互式宾果网格
- 19. 交互式网站原型制作
- 20. 交互式php
- 21. 交互式Antlr
- 22. 交互式ImageViews
- 23. 交互式Python
- 24. 交互式iframe
- 25. Bukkit交互式菜单 - 页面滚动
- 26. 创建可以与网页中的用户交互的视频
- 27. Go前端与HTML和Go的互动
- 28. 交互式图形Qt中
- 29. 网格中的交互控件
- 30. F#交互式System.OutOfMemoryException
你必须使用JavaScript,或者transpile到JavaScript语言创建交互式网页。 TMK,Go没有任何转译器把它变成JS。 –
感谢您的回答。是否可以使用GO管理数据和JS以显示它们并与GO进行交互以在需要时获取新数据? – azekirel555
当然,您可以使用Golang编写Web服务器,它可以为Web客户端提供JSON和/或HTML服务。 “服务器呈现的应用程序”和SPA体系结构之间有很大的选择。所以你有一个用Golang写的服务器和JS中的Web客户端。 –