Fri Jan 21 2022
...
FastComments представляет рендеринг на стороне сервера
! Эта статья содержит техническую терминологию
Что нового
С момента запуска в начале 2020 года FastComments использовал исключительно JavaScript для отображения виджета комментариев.
Что если мы скажем вам, что вы можете иметь почти всю ту же основную функциональность, но без использования JS?
В приведенном выше скриншоте виджет комментариев FastComments без JavaScript. Вы можете просмотреть эту страницу без JavaScript здесь.
Как это использовать
Если вы используете WordPress, версия плагина FastComments 3.10.1 автоматически добавляет поддержку SSR как запасной вариант для пользователей, которые просматривают с отключенным JS.
Для пользовательских реализаций, получите интерфейс для потока комментариев, просто вызвав /ssr/comments для этой страницы:
Где $urlId — это url или id страницы. Документация по этому вопросу доступна здесь.
Например, с помощью PHP мы можем отправить iframe на страницу, которая отображает поток комментариев внутри:
Мы также можем сделать API-вызов, чтобы получить HTML для потока комментариев и отобразить или сохранить его.
Полная документация доступна в документации по SSR на docs.fastcomments.com.
SSO
Поскольку мы любим аббревиатуры, звучащие как из корпоративного мира, не волнуйтесь, SSR поддерживает SSO. Пример единого входа с SSR здесь.
Локализация
Конечная точка на основе SSR автоматически локализует ответ на основе заголовков языка, отправляемых браузером. Она также может использовать те же переопределения локализации, что и виджет на базе JavaScript.
Почему это было создано
Одной из основных жалоб на такие сервисы, как FastComments, является то, что они требуют JS. Мы уже делаем наш виджет комментариев максимально легким и гарантируем выполнение SLA вызовов API за < 20ms, но многие меньшие сообщества не выберут такое решение, если это означает добавление JS на их сайт.
Это также открывает возможность использования рендеринговых движков, у которых нет доступа к JavaScript.
Технология
FastComments использует собственный небольшой микрофреймворк для рендеринга пользовательского интерфейса. Этот фреймворк использует подход, схожий с React, за исключением того, что разрешены ручные манипуляции с DOM вне начального рендеринга.
Основная библиотека виджета комментариев имеет единую точку входа - она принимает набор состояния и создает результирующий HTML и CSS для отображения. Мы также просто вызываем это на сервере. Когда пользователь взаимодействует со страницей, состояние меняется и обновленный HTML загружается. Это было создано в результате хакатона, который состоялся в рамках новогоднего праздника.
Живое комментирование
Поскольку UI отображается сервером один раз, функции живого комментирования в настоящее время недоступны.
Кроме того, колокольчик уведомлений в данный момент недоступен. Мы будем открыты для добавления этой функции в будущем.
Производительность
Серверный интерфейс использует те же оптимизации хранения и движок рендеринга, что и виджет на базе JavaScript. Для небольших потоков комментариев производительность на самом деле лучше, так как пользователю не нужно скачивать скрипт, который затем загружает комментарии и рендерит интерфейс.
Пауки и SEO
FastComments уже хорошо работает с веб-пауками; если SEO является проблемой, использование SSR не требуется.
Будущие применения
Мы планируем запустить решение для форумов в будущем. Традиционно форумы разбиты на страницы и рендерятся на стороне сервера. Современные решения для форумов отходят от этой нормы, используя бесконечный скроллинг и рендеринг на стороне клиента. Мы не считаем, что это должен быть единственный вариант использования панели стороннего форума.
В заключение
Мы надеемся, что вы нашли этот гид полезным и легким для чтения. Не стесняйтесь оставлять комментарии ниже с любыми вопросами.
Удачи!
