Почему этим форумам требуется JavaScript? В конце концов, другие форумы могут работать и без него.
Поскольку Discourse — это по сути чистый JavaScript. Если убрать JS, ничего не останется ![]()
Другое техническое решение, и всё.
Так уж оно устроено. Discourse не просто «нуждается» в JavaScript — это JavaScript-приложение, которое полностью загружается в вашем браузере, и это приложение использует API для загрузки данных из базы данных на стороне сервера.
@Jagster оказался быстрее. Также, возможно, моё объяснение немного размыто, но я уверен, что здесь есть эксперты, которые смогут объяснить это лучше!
Это требует некоторых пояснений.
Для начала:
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, кто-нибудь?
Я уверен, что есть множество других преимуществ, но это основные из них.
Со стороны клиента и для конечного пользователя это чистый JS, или так кажется, верно?
