Добавление Javascript на веб-сервер Go

  1. часть: создание сервиса
  2. часть: улучшение сервиса
  3. часть: обновление для Интернета
  4. часть: добавление SSE
  5. часть: вы читаете это прямо сейчас
  6. часть: frontend - backend коммуникация
  7. часть: логирование на стороне сервера
  8. часть: запустить все в докере
  9. часть: добавление контейнера базы данных
  10. часть: база данных - служебная связь

Дополнение 1: функции, методы, указатели и интерфейсы
Дополнение 2: связь через веб-сокеты
Дополнение 3: связь через сокеты

Зачем использовать ванильный Javascript для вашего интерфейса?

Потому что ванильный Javascript - это интерфейсный язык. Конечно, вы можете использовать Typescript, Dart и другие технологии, но в основе лежит Javascript.

С другой стороны, вы можете использовать Angular, React, Vue и еще миллион фреймворков. Но все они работают с использованием Javascript под капотом.

Используя ванильный Javascript, вы изучаете, понимаете и используете технологию в том виде, в котором она была разработана. В Интернете есть масса учебных пособий и учебных курсов, и если вам нужна моя рекомендация, я считаю, что этого руководства действительно достаточно, чтобы сразу же начать использовать Javascript.

Погрузитесь прямо в обновление кода

Откройте файл homepage.html и сосредоточьтесь на этих трех строках, содержащих тег <h>. Обновите <h1>, <h2> и добавьте новую строку <h3>. Эти три строки будут отображать три отдельных информации:

  • время, когда страница была сгенерирована
  • фактическое время на стороне сервера, используя SSE
  • время, когда была нажата кнопка (новый функционал)

Затем переключитесь на свой homepage.js и измените строку, обновляющую объект actual-time. Мы добавляем лишь некоторую текстовую информацию, поэтому мы сразу узнаем, сколько времени и что работает.

Добавление новой функциональности Javascript

На данный момент мы обновили текстовую информацию на веб-странице, и теперь мы добавляем эту функциональность javascript, как упоминалось в начале этой статьи. Добавьте новую строку, которая будет обращаться к элементу <h3> с идентификатором button-time.

А затем функция обновления, которая до сих пор отображает предупреждающее сообщение. После этого изменения будет отображаться фактическое время.

Запустите программу и вы увидите что-то вроде скриншота ниже.

Теперь у нас есть три отдельные функции, работающие на одной простой веб-странице:

  • страница обновляется с указанием фактической даты и времени, прежде чем она будет сгенерирована и отправлена ​​пользователю - эта функция использует шаблоны Go
  • страница обновляется с указанием даты и времени в реальном времени из серверной части Go с использованием функции SSE
  • страница обновляется со временем, когда была нажата кнопка, с использованием ванильного Javascript

А вы заметили, что страница вообще не обновляется? Только эти раз, либо с помощью SSE, либо с помощью кнопки?

Точная настройка формата времени

Но у нас еще есть над чем поработать, потому что эти три даты имеют действительно странное форматирование, а время обновления каждую миллисекунду тратит ресурсы. Мы изменим это сейчас.

Откройте файл homepage.go и обновите это время сна в streamTime() функции, чтобы он транслировал время примерно каждую секунду. Кроме того, строка обновления, которая передает фактическое время. Добавьте метод форматирования.

Примечание: в Goland есть удобная функция для форматирования экземпляров даты и времени. Перейдите к этой функции форматирования и нажмите m, Goland покажет вам возможности для строки m.

Затем обновите одну строку в функции serveHomepage().

Теперь у нас есть обе даты, которые происходят в Go, правильно отформатированные. Наконец, мы отформатируем дату и время для нажатия этой кнопки. Перейдите к homepage.js и обновите функцию прослушивателя, как показано ниже.

Боковое примечание: я специально выбрал такое же форматирование, чтобы оно выглядело хорошо и одинаково, но вы можете играть с форматированием даты и времени Go, а также можете играть с форматированием даты и времени Javascript по своему усмотрению. . Просто чтобы дать вам пример различного форматирования Javascript.

new Date().toLocaleDateString('en-US', {year: 'numeric', month: '2-digit', day: '2-digit'});

Есть много источников для форматирования даты и времени, вот две ссылки. Первый для Go, второй для Javascript.





Пора все это проверить

Мы подошли к концу сегодняшней статьи. Снимок экрана ниже - это окончательный результат, который вы должны увидеть. Все три экземпляра даты и времени работают правильно и с одинаковым форматированием.

Резюме

Как видите, нам пока не нужно использовать какой-либо фреймворк. Ни Angular, ни React, ничего больше. Мы обновляем данные на главной странице с помощью простого и понятного JavaScript. Надеюсь, я убедил вас потратить время на изучение Javascript и изучить только обычный Javascript. Вы всегда можете изучить больше технологий, но разумнее сначала использовать основу.

Даже с учетом этого немногого в этой статье теперь вы знаете, как…

  • загрузить файл javascript (вы знали об этом раньше)
  • доступ к элементу на веб-странице
  • добавить слушателя к этому элементу
  • активировать этого слушателя
  • изменить / обновить этот элемент при активации слушателя