Браузеры не могут запускать код прямого доступа. Интерактивные веб-страницы на стороне клиента используют разные технологии, такие как HTML, Javascript и CSS.
Однако, это эффективный стек технологий, который использует вышеупомянутые языки на стороне клиента и делает все в Go на стороне сервера.
Это, как говорится, все еще есть некоторые рамки, которые позволяют вам писать все в Go, и они преобразуют ваш код Go в языки, понятные/поддерживаемые клиентской стороной, или они генерируют код для клиентской стороны, которые взаимодействуют с серверный код Go.
Для последнего есть Gowut (Go Web UI Toolkit) (раскрытие: Я являюсь автором). С Gowut вы можете писать все в Go (как на стороне клиента, так и на стороне сервера), а Gowut генерирует необходимый клиентский код «на лету», и он заботится о связи между сгенерированным кодом клиента и кодом сервера Go. Существует живая демонстрация Gowut, вы можете проверить ее и посмотреть, что здесь capabe: Gowut - Showcase of Features
Gowut создает полностью динамические веб-страницы, содержимое визуализируется и может меняться без перезагрузки страницы. И все же, все может быть сделано просто с помощью кода Go, но у вас есть возможность использовать код HTML/JS/CSS, чтобы оживить ситуацию - если у вас есть желание или необходимость сделать это.
Для первого есть GopherJS. GopherJS компилирует код Go для чистого кода Javascript, поэтому это не действительно веб-фреймворк, но вы можете написать код на стороне клиента в Go с этим. Вы по-прежнему должны заботиться о серверном коде и общении между ними.
В стандартной библиотеке также есть мощный движок шаблонов: html/template
. Хотя шаблоны выполняются исключительно на стороне сервера, с помощью некоторого базового кода Javascript и вызовов AJAX (или веб-сайтов) вы можете сделать вашу клиентскую сторону динамичной и интерактивной. Для примера, чтобы эти вопросы и ответы:
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
Вы должны использовать JavaScript, или язык transpile-к-JavaScript для создания интерактивных веб-страниц. TMK, Go не имеет никаких транспиляторов, чтобы превратить его в JS. –
Спасибо за ваш ответ.Можно ли использовать GO для управления данными и JS для их отображения и взаимодействия с GO для получения новых данных, если это необходимо? – azekirel555
Да, конечно, вы можете написать веб-сервер с Golang, который может обслуживать JSON и/или HTML для веб-клиента. Существует большой выбор между «серверными приложениями» и архитектурой SPA. Таким образом, у вас есть сервер, написанный в Голанге и веб-клиенте в JS. –