Sådan oprettes en RSS Reader App i JavaScript
RSS (Really Simple Syndication) er et standardiseret format, der bruges af udgivere online til syndikere deres indhold til andre hjemmesider og tjenester. en RSS-dokument, også kendt som a foder, er en XML-dokument bærer det indhold, som en udgiver ønsker at distribuere.
RSS-feeds er tilgængelige på næsten alle online nyhedswebsteder og blogs for deres læsere til Hold dig ajour med deres indhold. De kan også findes på ikke-tekstbaserede hjemmesider f.eks. YouTube, hvor du kan bruge feedet fra en YouTube-kanal til at være informeret om de nyeste videoer.
Programmer, der får adgang til disse feeds, og læser og viser deres indhold kaldes RSS læsere. Du kan oprette et simpelt RSS-læserprogram i JavaScript. I denne vejledning ser vi hvordan.
Struktur af et RSS-feed
Et RSS-feed har et rodelement hedder
, svarende til tag fundet i HTML-dokumenter. Inde i
tag, der er en
element, slags lignende i HTML, det indeholder mange underelementer indeholdende det distribuerede indhold på hjemmesiden.
Et foder bærer normalt nogle grundlæggende oplysninger såsom titel, URL og beskrivelse af hjemmesiden og af individuelle opdaterede indlæg, artikler eller andet indhold af denne hjemmeside. Disse oplysninger findes i
, , og
elementer.
Når disse tags er direkte til stede indeni
, de har titel, URL og beskrivelse af hjemmesiden. Når de er nuværende inde
at Indeholder oplysningerne om de opdaterede indlæg, de repræsenterer de samme oplysninger som før, men det for de enkelte indhold, som hver
repræsentere.
Der er også nogle valgfrie elementer der kan være til stede i et RSS-feed, der giver supplerende oplysninger som billeder eller ophavsrettigheder på det distribuerede indhold. Du kan lære om dem i dette RSS 2.0 specifikation på cyber.harvard.edu.
Her er et eksempel på hvordan RSS feed af en hjemmeside kan se ud:
Hongkiat https://www.hongkiat.com/Design Tips, Tutorial og Inspirations en-os Visualiser ethvert CSS-formatark med CSS-statistikker Har du nogensinde spekuleret på, hvor mange CSS-regler der findes i et stylesheet? Eller har du nogensinde ønsket at se ... 18/05/2017 https://www.hongkiat.com/blog/css-stylesheet-with-css-stats/Amazon Echo Show - Den seneste Alexa-powered Smart Device Amazon er ikke fremmed for begrebet smart home-systemer med en integreret digital assistent. Trods alt 17/05/2017 https://www.hongkiat.com/blog/alexa-device-amazon-echo-show/
Henter feedet
Vi er nødt til hent foderet med vores RSS-læserapplikation. På et websted kan webadressen til et RSS-feed være fundet inde i tag ved hjælp af
application / rss + xml
type. For eksempel finder du følgende RSS feed link på Hongkiat.com.
Lad os først se hvordan få feed-URL'en til en hjemmeside ved hjælp af JavaScript.
hent (websiteUrl) .then ((res) => res.text () .hen ((htmlTxt) => var domParser = ny DOMParser () lad doc = domParser.parseFromString (htmlTxt, 'text / html') var feedUrl = doc.querySelector ('link [type = "application / rss + xml"]'). href))) .fang (() => console.error ('Fejl ved hentning af hjemmesiden'))
Det fetch ()
Metoden er en global metode der asynkront henter en ressource. Det tager URL'en til ressourcen som et argument (webadressen på hjemmesiden i vores kode). Det returnerer a Løfte
objekt, så når metoden med held henter hjemmesiden (dvs. Løfte
er opfyldt), den første funktion inde i derefter()
udmelding håndterer det hentede svar (res
i ovenstående kode).
Det hentede svar er da læses fuldt ud i en tekststreng bruger tekst()
metode. Denne tekst repræsenterer HTML-tekst på vores hentede hjemmeside. Synes godt om fetch ()
, tekst()
også returnerer a Løfte
objekt. Så når det med succes opretter en svartekst fra responsstrømmen, derefter()
vil håndtere denne svartekst (htmlText
i ovenstående kode).
Når HTML-tekst på hjemmesiden er tilgængelig, bruger vi DOMParser API
til analysere det i et DOM-dokument. DOMParser
analyserer en XML / HTML-tekststreng i et DOM-dokument. Dens metode, parseFromString ()
, tager to argumenter: det tekst, der skal analyseres og indholdstype.
Derefter fra det oprettede DOM dokument, vi Find href
værdien af den relevante tag bruger
querySelector ()
metode for at få URL'en til feedet.
Parsering og visning af feedet
Når vi har fået webadressens feed-URL, skal vi hent og læs RSS-dokumentet fundet på den webadresse.
hent (feedUrl) .then ((res) => res.text (). derefter ((xmlTxt) => var domParser = ny DOMParser () lad doc = domParser.parseFromString (xmlTxt, 'text / xml') doc .querySelectorAll ('item') .forEach ((item) => lad h1 = document.createElement ('h1') h1.textContent = item.querySelector ('title') .textContent document.querySelector ('output'). appendChild (h1))))
På samme måde som vi hentede og analyserede hjemmesiden, nu vi få og analysere XML-feedet i et DOM-dokument. For at opnå dette bruger vi 'Text / xml'
indholdstype i parseFromString ()
metode.
I det analyserede dokument, vi vælg alle de
elementer bruger querySelectorAll
metode og loop gennem hver.
Inde i hvert element kan vi adgangskoder synes godt om
,
, og , der bærer foderindholdet. Og vores enkle RSS-læserapplikation er færdig, og du kan indstille indholdet af de hentede feeds, som du ønsker.
Github demo
Du kan tjekke ud mere detaljeret version af koden der bruges i dette indlæg i vores Github repo. Den mere detaljerede version henter tre strømme (Mozilla Hacks, Hongkiat og Webkit blog) ved hjælp af en JSON-fil og tilføjer også nogle CSS-stilarter til RSS-læseren.