FastComments.com Blog

Fri Jan 21 2022
...

FastComments Udgiver Server-Side Rendering

! Denne artikel indeholder teknisk jargon

Hvad er nyt

Siden lanceringen i begyndelsen af 2020 har FastComments udelukkende brugt JavaScript til at gengive kommentar-widgeten.

Hvad hvis vi fortalte dig, at du kunne få næsten al den samme essentielle funktionalitet, men uden at bruge JS?

Dette er et screenshot, stop med at prøve at klikke på det.
SSR Demo

Det ovenstående screenshot viser FastComments kommentar-widget, uden JavaScript. Du kan se denne side, uden JavaScript, her.

Sådan bruger du det

Hvis du bruger WordPress, tilføjer FastComments plugin-version 3.10.1 automatisk support for SSR som en fallback for dine brugere, der browsere med JS deaktiveret.

For brugerdefinerede implementationer, hent UI'en for en kommentar-tråd, ved simpelthen at kalde /ssr/comments for den pågældende side:

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

Hvor $urlId er url'en, eller id'et, for siden. Dokumentation om dette er her.

For eksempel, med PHP kan vi sende en iframe til siden, der gengiver kommentar-tråden indeni:

PHP-baseret SSR eksempel
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

Vi kunne også lave et API-kald for at få HTML til en kommentar-tråd, og gengive eller gemme det.

Komplet dokumentation er tilgængelig i SSR Docs på docs.fastcomments.com.

SSO

Fordi vi elsker enterprise-lydende akronymer, skal du ikke bekymre dig, SSR understøtter SSO. Et eksempel på Single-Sign-On med SSR er her.

Lokalisering

Den SSR-baserede endpoint lokaliserer automatisk svaret baseret på de sprogrelaterede headers, som browseren sender. Den kan også bruge de samme lokaliserings overrides som den JavaScript-baserede widget.

Hvorfor dette blev bygget

En af de vigtigste klager over tjenester som FastComments er, at de kræver JS. Vi gør allerede vores kommentar-widget så slank som muligt, og sikrer, at vi overholder vores API-kald SLA'er på < 20ms, men mange mindre samfund vil ikke vælge en sådan løsning, hvis det betyder at tilføje JS til deres site.

Dette åbner også op for muligheden for at bruge gengivelsesmotorer, der ikke har adgang til JavaScript.

Teknologien

FastComments bruger sit eget lille mikroframework til at gengive UI'en. Dette framework bruger en lignende tilgang til React, bortset fra at manuelle DOM-manipulationer uden for den indledende gengivelse er tilladt.

Den centrale kommentar-widgetbibliotek har et enkelt entry point - det tager et sæt tilstande og skaber resulterende HTML og CSS, der skal gengives. Vi kalder simpelthen dette på serveren også. Når brugeren interagerer med siden, ændres tilstanden, og den nyeste HTML hentes. Dette blev bygget som et resultat af et hackathon, der fandt sted som en del af nytåret.

Live kommentarer

Da UI'en gengives af serveren, én gang, er live kommentarfunktioner ikke tilgængelige.

Derudover er notifikationsklokken i øjeblikket ikke tilgængelig. Vi vil være åbne for at tilføje denne funktion i fremtiden.

Ydelse

Den server-gengivne UI bruger de samme lageroptimeringer og gengivelsesmotor som den JavaScript-baserede widget. For små kommentar-tråde er ydeevnen faktisk bedre, da brugeren ikke behøver at downloade et script, der derefter henter kommentarerne og gengiver UI'en.

Crawlers og SEO

FastComments fungerer allerede godt med webcrawlere; hvis SEO er en bekymring, er brug af SSR ikke nødvendigt.

Fremtidige applikationer

Vi planlægger at lancere en Forum-løsning i fremtiden. Traditionelt er fora pagineret og server-side gengivet. Moderne Forum-løsninger bevæger sig væk fra denne norm ved at bruge uendelig rulling og klient-side gengivelse. Vi mener ikke, at dette skal være den eneste mulighed for at bruge en tredjeparts Forum-løsning.

Afslutning

Vi håber, du har fundet denne guide nyttig og nem at læse. Føl dig fri til at kommentere nedenfor med eventuelle spørgsmål.

Skål!