Почему форумы Discourse требуют JS?

Почему этим форумам требуется JavaScript? В конце концов, другие форумы могут работать и без него.

1 лайк

Поскольку Discourse — это по сути чистый JavaScript. Если убрать JS, ничего не останется :wink:

Другое техническое решение, и всё.

3 лайка

Так уж оно устроено. Discourse не просто «нуждается» в JavaScript — это JavaScript-приложение, которое полностью загружается в вашем браузере, и это приложение использует API для загрузки данных из базы данных на стороне сервера.


@Jagster оказался быстрее. Также, возможно, моё объяснение немного размыто, но я уверен, что здесь есть эксперты, которые смогут объяснить это лучше!

5 лайков

Это требует некоторых пояснений.

Для начала:

:thinking: :eyes: GitHub - discourse/discourse: A platform for community discussion. Free, open, simple. · GitHub

На самом деле Discourse в основном написан на Ruby on Rails, и (согласно данным GitHub) только четверть его кода — это JavaScript, хотя это критически важная четверть, которая доминирует на стороне клиента.

Причины, по которым Discourse и другие современные веб-сайты (веб-приложения) используют JavaScript, следующие:

  • Нагрузка на сервер: JavaScript снимает с сервера значительную часть работы, что помогает сайту лучше масштабироваться (эй, почему бы не заставить компьютер пользователя разделить часть нагрузки?)
  • Пропускная способность: хотя первоначальная загрузка может занять немного больше времени из-за необходимости загрузить JavaScript, последующая подгрузка данных происходит ГОРАЗДО быстрее и требует НАМНОГО меньше пропускной способности (если бы завтра во всём мире исчез JavaScript, интернет, возможно, остановился бы?), поскольку передаются только данные, а не вся разметка и макет всех элементов интерфейса. Таким образом, всё выполняется в сети гораздо быстрее, что позволяет работать даже при низкоскоростных соединениях, например, при плохом мобильном интернете.
  • Интерфейс: улучшает динамичность пользовательского интерфейса, делая опыт использования лучше (например, при нажатии кнопки обновляется только часть экрана — без полной перерисовки всего браузера).
  • Это стандарт: JavaScript является стандартом во всех современных браузерах, включая мобильные, поэтому достаточно написать код один раз, и он приобретёт качества нативного приложения на большинстве устройств.
  • Разделение ответственности: позволяет отделить процессы сервера от необходимости рендеринга интерфейса (обычно), что упрощает миграцию или поддержку других фронтендов, которые могут не быть основаны на JavaScript (или даже HTML). Приложение для iOS, кто-нибудь?

Я уверен, что есть множество других преимуществ, но это основные из них.

12 лайков

Со стороны клиента и для конечного пользователя это чистый JS, или так кажется, верно?

3 лайка