FastComments.com Blog

Fri Jan 21 2022
...

FastComments Releases Server-Side Rendering

! Тази статия съдържа техническа терминология

Какво ново

От старта си в началото на 2020 г. FastComments използва изключително JavaScript за рендиране на виджета за коментари.

Какво ще стане, ако ви кажем, че можете да имате почти всички съществени функции, но без използване на JS?

Това е снимка на екрана, спрете да се опитвате да я кликнете.
SSR Demo

Горната снимка на екрана показва виджета за коментари на FastComments, без JavaScript. Можете да видите тази страница, без JavaScript, тук.

Как да го използвате

Ако използвате WordPress, версия 3.10.1 на плъгина FastComments автоматично добавя поддръжка за SSR като резервен вариант за потребители, които разглеждат с деактивиран JS.

За кастомни реализации, изтеглете UI за коментарен поток, като просто извикате /ssr/comments за тази страница:

https://fastcomments.com/ssr/comments?tenantId=$tenantId&urlId=$urlId&url=$url

Където $urlId е URL адресът или ID на страницата. Документацията за това е тук.

Например, с PHP можем да изпратим iframe на страницата, която рендира коментарния поток вътре:

PHP-базиран пример за SSR
1
2<?php
3$tenantId = rawurlencode("my-tenant-id");
4$urlId = rawurlencode("my-page-url-article-id");
5$url = rawurlencode("my-page-url");
6
7$fastcomments_url = "https://fastcomments.com/ssr/comments?tenantId=$tenantId&urlId=$urlId&url=$url";
8?>
9<iframe
10 src="<?php echo $fastcomments_url; ?>"
11 horizontalscrolling="no"
12 allowtransparency="true"
13 frameborder="0"
14 title="FastComments"
15 width="100%"
16 height="1500px"
17 style= "width: 1px !important; min-width: 100% !important; border: none !important; overflow: hidden !important;"
18></iframe>
19

Можем също да направим API повикване, за да получим HTML за коментарен поток и да го рендираме или съхраним.

Пълната документация е налична в SSR документацията на docs.fastcomments.com.

SSO

Тъй като обичаме акроними, звучащи корпоративно, не се притеснявайте, SSR поддържа SSO. Пример за Single-Sign-On с SSR е тук.

Локализация

SSR-базираната крайна точка автоматично локализира отговора на базата на заглавките на езика, които браузърът изпраща. Тя може също да използва същите локализационни надстройки като JavaScript-базирания виджет.

Защо беше изградена

Едно от основните оплаквания относно услуги като FastComments е, че изискват JS. Вече правим нашия виджет за коментари колкото се може по-лек и се уверяваме, че спазваме нашите SLA за API повиквания под 20ms, но много по-малки общности няма да изберат такова решение, ако това означава добавяне на JS на сайта им.

Това също отваря възможност за използване на рендериращи двигатели, които нямат достъп до JavaScript.

Технологията

FastComments използва собствен малък микрорамка за рендиране на потребителския интерфейс. Тази рамка използва подобен подход на React, с изключение на това, че ръчните манипулации на DOM извън първоначалното рендиране са разрешени.

Основната библиотека на виджета за коментари има една единствена входна точка - тя взема набор от състояния и създава произтичащото HTML и CSS, което да бъде рендерирано. Ние просто извикваме това и на сървъра. Когато потребителят взаимодейства със страницата, състоянието се променя и последното HTML се изтегля. Това беше изградена в резултат на хакатон, който се проведе като част от новогодишните празненства.

Живо коментиране

Тъй като UI се рендира от сървъра, един единствен път, функциите за живо коментиране не са налични.

Освен това, звънецът за известия в момента не е наличен. Ние ще сме отворени за добавяне на тази функция в бъдеще.

Производителност

Рендираният от сървъра интерфейс използва същите оптимизации за съхранение и рендериращ двигател като JavaScript-базирания виджет. За малки коментарни потоци, производителността всъщност е по-добра, тъй като потребителят не трябва да изтегля скрипт, който след това извършва извикване на коментари и рендира интерфейса.

Механизми за обхождане и SEO

FastComments вече работи добре с мрежовите механизми за обхождане; ако SEO е важен, използването на SSR не е задължително.

Бъдещи приложения

Планираме да пуснем решение за форум в бъдеще. Традиционно форумите са страницирани и рендирани от сървъра. Съвременните форумни решения се отклоняват от тази норма, използвайки безкрайно превъртане и рендиране от клиентската страна. Не мислим, че това трябва да е единствената опция за използване на решение за форум от трета страна.

В заключение

Надяваме се, че това ръководство е било полезно и лесно за четене. Не се колебайте да коментирате по-долу с всякакви въпроси.

Наздраве!