Как написать на Go веб сервер с динамическим обновлением части страницы?
В качестве эксперимента написал простенький веб сервер на GO (+martini просто потому, что пример для heroku был с этой библиотекой, можно родную использовать или любую другую)
К серверу делаются разные запросы и на основной странице выводится статистика. Для обновления данных воткнул в заголовок тег на авто перезагрузку страницы:
<meta http-equiv="refresh" content="3" />
Как сделать это более аккуратно, без перезагрузки всего? Вся статистика это просто текст, ни графики ничего.
Ну сейчас у меня сервер делает статическую страницу, типа
* заголовок, который не меняется никогда
* тело, в которое вставляется статистика актуальная на момент генерации
Так понял из чтения интернетов, на страницу надо внедрить некий активный элемент, на js например, который будет запрашивать у сервера обновленное тело, или его части.
Но была надежда, что как-то можно по иному это сделать, опять же может в каком go фреймворке есть что-то встроенное. Условно говоря пометить некий блок как автообновимый. В итоге сгенерится правильный клиентский код, который всё будет делать запросы, а со стороны сервера будет вызываться callback или браться данные из нужных переменных.
Василий Мельников, сервер должен отдавать то, что у него попросят. Ему в целом пофигу что там - хоть статическая страница, хоть динамическая, хоть бинарный поток.
Может вы не о вебсервере говорите все таки? А о чем то типа бекенда с логикой?
GavriKos, сервер на go это и есть бэкенд с логикой.
Это программа которая принимает http запросы и отвечать на них но не по формализованным правилам, а по тому, что закодили в конкретном случае. Т.е. чтобы сработали ajax или иные запросы, для них нужно написать ответственную часть.
Василий Мельников, о терминах можно долго спорить ) Я бы сказал что у вас бекенд, использующий встроенный в Go механизм веб-сервера )
Но по сути хоть так хоть так - серверу все равно. У него спросили данные - он отдал. Аяксом спросили или еще чем - все равно. Вам надо смотреть в сторону фронтенда - как послать запрос, как обработать ответ и обновить данные на странице.
А вставить кусок js-кода в вашу страницу на стороне бекенда/вебсервера я думаю не составит труда.
GavriKos, труда не составит, просто пытался найти более простой путь, потому и написал про Go и конкретную библиотеку. Чтобы оно всё "сделалось само", ну собственно о чём и говорил.
Пока это домашний проект, если заведется и зайдет среди коллег, можно будет улучшайзингом заниматься, ну или когда очередной раз время появится.