Kuidas luua RSS-lugeja rakendus JavaScriptis
RSS (Really Simple Syndication) on standardiseeritud formaat, mida online-kirjastajad kasutavad nende sisu teistele veebisaitidele ja teenustele. An RSS-dokument, tuntud ka kui a sööda, on XML-dokument sisu, mida avaldaja soovib levitada.
RSS-kanalid on saadaval peaaegu kõigis veebisaitide uudistesaitides ja -logides, mida nende lugejad saavad jääda ajakohaseks oma sisuga. Neid võib leida ka mitte-tekstipõhised veebisaidid näiteks YouTube, kus saate kasutada YouTube'i kanali voogu viimaste videote kohta.
Neid vooge kasutavad programmid ning nende sisu lugemine ja kuvamine on kutsutud RSS-lugejad. JavaScriptis saate luua lihtsa RSS-lugeja programmi. Selles juhendis näeme, kuidas seda teha.
RSS-voo struktuur
RSS-voog on juurelement kutsus
, sarnane HTML-dokumentides leiduv silt. Sisse
silt on olemas
element, sarnane HTML-is sisaldab mitmeid alamelemente veebisaidi jaotatud sisu.
Sööt kannab tavaliselt mõningaid põhiandmed näiteks veebisaidi ja veebisaidi pealkiri, URL ja kirjeldus üksikud värskendatud postitused, artiklid või muu sisu veebisaidi kohta. Need andmed on leitud
, , ja
elemente.
Kui need sildid on otse sees
, neil on veebisaidi pealkiri, URL ja kirjeldus. Kui nad on sees
seda hoiab ajakohastatud postituste kohta teavet, need kujutavad endast sama teavet kui varem, kuid iga üksiku sisu kohta
esindama.
On ka mõningaid valikulised elemendid mis võivad esineda RSS-voos, pakkudes jagatud sisule täiendavat teavet, näiteks pilte või autoriõigusi. Neid saate sellest teada saada RSS 2.0 spetsifikatsioon aadressil cyber.harvard.edu.
Siin on näide selle kohta, kuidas Veebisaidi RSS-voog võib tunduda:
Hongkiat https://www.hongkiat.com/Disaini näpunäited, õpetused ja inspiratsioonid et-me Visualiseeri CSS-stiilid CSS-statistikaga Kas olete kunagi mõelnud, kui palju CSS-reegleid on stiilitabelis? Või olete kunagi tahtnud näha… 18/05/2017 https://www.hongkiat.com/blog/css-stylesheet-with-css-stats/Amazon Echo Show - uusim Alexa-toega nutikas seade Amazon ei ole võõras mõiste „arukad kodussüsteemid” sisseehitatud digitaalse assistentiga. Lõppude lõpuks… 17/05/2017 https://www.hongkiat.com/blog/alexa-device-amazon-echo-show/
Sööda hankimine
Me peame tõmba sööt meie RSS-lugeja rakendusega. Veebisaidil võib olla RSS-voo URL leitud sildi abil
rakendus / rss + xml
tüüp. Näiteks leiate Hongkiat.com-i järgmise RSS-kanali lingi.
Esiteks, vaatame, kuidas saada veebisaidi URL-i JavaScript.
fetch (websiteUrl) .then ((res) => res.text (). siis ((htmlTxt) => var domParser = uus DOMParser () lase doc = domParser.parseFromString (htmlTxt, 'text / html') var feedUrl = doc.querySelector ('link [type = "application / rss + xml"]'). href)) saak (() => console.error ('Viga veebisaidi hankimisel'))
The tõmbama ()
meetod on globaalne meetod asünkrooniliselt tõmbab ressursi. See võtab ressursi URL-i argumendina (veebisaidi URL meie koodis). See tagastab a Lubadus
kui meetod tõmbab veebisaidi edukalt (st Lubadus
on täidetud), esimene funktsioon sees siis ()
avaldus tegeleb tõmmatud vastusega (res
ülaltoodud koodis).
Tõmmatud vastus on siis lugeda täielikult tekstistringiks kasutades tekst ()
meetod. See tekst esindab Meie meie veebisaidi HTML-tekst. Nagu tõmbama ()
, tekst ()
ka tagastab a Lubadus
objekti. Niisiis, kui see edukalt loob vastusteksti vastuse voost, siis ()
tegeleb selle vastuse tekstiga (htmlText
ülaltoodud koodis).
Kui veebisaidi HTML-tekst on saadaval, kasutame seda DOMParseri API
kuni selle DOM-dokumendiks. DOMParser
analüüsib XML / HTML tekstistringi DOM-dokumendiks. Selle meetod, parseFromString ()
, võtab kaks argumenti: analüüsitav tekst ja sisu tüüp.
Seejärel luuakse loodud DOM-dokumendist leida href
väärtus silt kasutades
querySelector ()
sööda URL-i saamiseks.
Söötme analüüsimine ja kuvamine
Kui oleme saanud veebisaidi feed-URL, peame seda tegema laadige ja loe RSS-dokument selle URL-i kohta.
fetch (feedUrl) .then ((res) => res.text (). siis ((xmlTxt) => var domParser = uus DOMParser () lase doc = domParser.parseFromString (xmlTxt, 'text / xml') doc .querySelectorAll ('item') .EE ((item) => let h1 = document.createElement ('h1') h1.textContent = item.querySelector ('title'). textContent document.querySelector ('output'). appendChild (h1))))
Samamoodi nagu me veebilehe hankimisel ja parsimisel, nüüd oleme saada ja analüüsida XML-voog DOM-dokumendis. Selle saavutamiseks kasutame 'text / xml'
sisu tüüp parseFromString ()
meetod.
Parsitud dokumendis me valige kõik
elemente kasutades querySelectorAll
meetod ja silmus läbi.
Iga elemendi sees võime sildid meeldib
,
, ja , mis sisaldavad sööda sisu. Ja meie lihtne RSS-lugejarakendus on tehtud, saate stiilida tõmmatud kanalite sisu vastavalt soovile.
Githubi demo
Võite vaadata üksikasjalikum versioon meie Github repos selles postituses kasutatud koodi kohta. Üksikasjalikum versioon tõmbab kolm kanalit (Mozilla Hacks, Hongkiat ja Webkiti blogi) kasutades JSON-faili ja lisab RSS-lugejale ka mõned CSS-stiilid.