Laman » Pengekodan » Bagaimana Membuat Apl Pembaca RSS dalam JavaScript

    Bagaimana Membuat Apl Pembaca RSS dalam JavaScript

    RSS (Really Simple Syndication) adalah format standard yang digunakan oleh penerbit dalam talian untuk sindiket kandungan mereka ke laman web dan perkhidmatan lain. An Dokumen RSS, juga dikenali sebagai a suapan, adalah Dokumen XML membawa kandungan yang ingin disebarkan oleh penerbit.

    Suapan RSS boleh didapati di hampir semua laman web dan blog berita dalam talian untuk pembaca mereka sentiasa up-to-date dengan kandungan mereka. Mereka juga boleh didapati pada laman web bukan berasaskan teks seperti YouTube, di mana anda boleh menggunakan suapan saluran YouTube dimaklumkan tentang video terkini.

    Program yang mengakses suapan ini, dan membaca dan memaparkan kandungannya dipanggil Pembaca RSS. Anda boleh membuat program pembaca RSS mudah dalam JavaScript. Dalam tutorial ini, kita akan melihat bagaimana.

    Struktur suapan RSS

    Suapan RSS mempunyai elemen akar dipanggil , sama dengan tag yang terdapat dalam dokumen HTML. Di dalam tag, ada a unsur, jenis seperti dalam HTML, itu termasuk banyak sub-unsur mengandungi kandungan diedarkan laman web tersebut.

    Suapan biasanya membawa beberapa maklumat asas seperti tajuk, URL, dan perihal laman web dan siaran, artikel, atau kandungan lain individu laman web itu. Maklumat ini dijumpai dalam </code>, <code><link></code>, dan <code><description></code> unsur-unsur, masing-masing.</p> <p>Apabila teg ini <strong>terus hadir di dalamnya <code><channel></code></strong>, mereka memegang tajuk, URL, dan perihal tapak web. Apabila mereka <strong>hadir di dalam <code><item></code></strong> itu <strong>memegang maklumat mengenai siaran yang dikemas kini</strong>, mereka mewakili maklumat yang sama seperti sebelum tetapi kandungan individu yang masing-masing <code><item></code> mewakili.</p> <p>Terdapat juga beberapa <strong>unsur pilihan</strong> yang mungkin terdapat dalam suapan RSS, memberikan maklumat tambahan seperti imej atau hak cipta pada kandungan yang diedarkan. Anda boleh belajar mengenainya dalam hal ini <strong>Spesifikasi RSS 2.0</strong> di cyber.harvard.edu.</p> <p>Berikut adalah contoh bagaimana <strong>Suapan RSS laman web</strong> mungkin kelihatan seperti:</p> <pre name="code"> <rss version="2.0"> <channel> <title>Hongkiat https://www.hongkiat.com/ Tips Rekabentuk, Tutorial dan Inspirasi en-us Visualisasikan Any Stylesheet CSS dengan CSS Statistics Pernah tertanya-tanya berapa banyak peraturan CSS yang terdapat dalam lembaran gaya? Atau adakah anda pernah mahu melihat ... 18/05/2017 https://www.hongkiat.com/blog/css-stylesheet-with-css-stats/ Amazon Echo Show - Alat Pintar Bertenaga Alexa Terkini Amazon tidak asing dengan konsep sistem rumah pintar dengan pembantu digital tertanam. Lagipun, ... 17/05/2017 https://www.hongkiat.com/blog/alexa-device-amazon-echo-show/

    Mengambil suapan

    Kita perlu ambil suapan dengan aplikasi pembaca RSS kami. Di laman web, URL suapan RSS boleh dijumpai di dalam tag menggunakan aplikasi / rss + xml jenis. Sebagai contoh, anda akan dapati pautan suapan RSS berikut di Hongkiat.com.

      

    Pertama, mari kita lihat cara dapatkan URL suapan tapak web menggunakan JavaScript.

     fetch (websiteUrl) .then ((res) => res.text () .kemudian ((htmlTxt) => var domParser = new DOMParser () membiarkan doc = domParser.parseFromString (htmlTxt, 'text / html' feedUrl = doc.querySelector ('pautan [type = "application / rss + xml"]'). href)). catch (() => console.error ('Error in taking the website' 

    The ambil() kaedah adalah kaedah global yang asynchronously mengambil sumber. Ia mengambil URL sumber sebagai hujah (URL laman web dalam kod kami). Ia mengembalikan a Janji objek, jadi apabila kaedah ini berhasil mendapatkan laman web (iaitu, Janji telah dipenuhi), fungsi pertama di dalam kemudian () pernyataan mengendalikan tindak balas yang diambil (res dalam kod di atas).

    Sambutan yang diambil kemudiannya baca sepenuhnya ke dalam rentetan teks menggunakan teks () kaedah. Teks ini mewakili Teks HTML laman web kami yang diambil. Suka ambil(), teks () juga mengembalikan a Janji objek. Oleh itu, apabila ia berjaya membuat teks respons daripada strim tindak balas, kemudian () akan mengendalikan teks tindak balas itu (htmlTeks dalam kod di atas).

    Setelah teks HTML laman web tersedia, kami menggunakannya API DOMParser kepada parse ia ke dalam dokumen DOM. DOMParser memfilter rentetan teks XML / HTML ke dalam dokumen DOM. Kaedahnya, parseFromString (), mengambil masa dua hujah: teks yang akan dihuraikan dan juga jenis kandungan.

    Kemudian, dari dokumen DOM yang dibuat, kami cari href nilai yang berkaitan tag menggunakan querySelector () kaedah untuk mendapatkan URL suapan.

    Parsing dan memaparkan suapan

    Sebaik sahaja kami mendapat URL suapan tapak web, kami perlu ambil dan baca dokumen RSS didapati di URL itu.

     fetch (feedUrl) .then ((res) => res.text (). kemudian ((xmlTxt) => var domParser = new DOMParser () .querySelectorAll ('item'). forEach ((item) => let h1 = document.createElement ('h1') h1.textContent = item.querySelector ('title'). appendChild (h1)))) 

    Dengan cara yang sama seperti kita mengambil dan menguraikan laman web, sekarang kita dapatkan dan parse suapan XML ke dalam dokumen DOM. Untuk mencapai ini, kami menggunakan 'teks / xml' jenis kandungan dalam parseFromString () kaedah.

    Dalam dokumen parsed, kami pilih semua unsur-unsur menggunakan querySelectorAll kaedah dan gelung melalui setiap.

    Di dalam setiap elemen, kita boleh akses tag seperti </code>, <code><description></code>, dan <code><link></code>, yang membawa kandungan suapan. Dan, aplikasi pembaca RSS kami yang mudah dilakukan, anda boleh menyusun kandungan suapan yang dimakan seperti yang anda inginkan.</p> <h4>Demo Github</h4> <p>Anda boleh menyemak <strong>versi yang lebih terperinci</strong> kod yang digunakan dalam siaran ini dalam repo Github kami. Versi yang lebih terperinci <strong>mengambil tiga suapan</strong> (Hacks Mozilla, Hongkiat, dan blog Webkit) <strong>menggunakan fail JSON</strong> dan juga menambah beberapa gaya CSS kepada pembaca RSS.</p> <div class="rek-block"> <center> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-6284591903398394" data-ad-slot="6432271471" data-ad-format="auto" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </center> </div> </div> </div> <div class="col-md-4"> <div class="bar"> <div class="rek-block"> <center> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-6284591903398394" data-ad-slot="6432271471" data-ad-format="auto" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </center> </div> <div class="barpost"> <div class="bar-post-img"><a href="/articles/howto/how-to-create-a-secretly-disguised-folder-without-extra-software.html"><img src="//savtec.org/img/images_7/how-to-create-a-secretly-disguised-folder-without-extra-software_11.png" alt=""></a></div> <div class="bar-post-h1"> <a href="/articles/howto/how-to-create-a-secretly-disguised-folder-without-extra-software.html">Cara Membuat Folder Tersembunyi Tanpa Rahasia Tanpa Perisian</a> </div> </div> <div class="barpost"> <div class="bar-post-img"><a href="/articles/computer-tips/how-to-create-a-secured-and-locked-folder-in-windows-xp.html"><img src="//savtec.org/img/images/how-to-create-a-secured-and-locked-folder-in-windows-xp.jpg" alt=""></a></div> <div class="bar-post-h1"> <a href="/articles/computer-tips/how-to-create-a-secured-and-locked-folder-in-windows-xp.html">Cara Mencipta Folder Terjamin dan Dikunci dalam Windows XP</a> </div> </div> <div class="barpost"> <div class="bar-post-img"><a href="/articles/coding/how-to-create-a-responsive-navigation.html"><img src="//savtec.org/img/images_2/how-to-create-a-responsive-navigation.jpg" alt=""></a></div> <div class="bar-post-h1"> <a href="/articles/coding/how-to-create-a-responsive-navigation.html">Bagaimana Membuat Navigasi yang Responsif</a> </div> </div> </div> </div> </div> </div> <div class="prevnext"> <div class="container"> <div class="row"> <div class="col-md-6"> <div class="post"> <div class="prevnext-title">Artikel seterusnya</div> <div class="post-img"><a href="/articles/howto/how-to-create-a-search-shortcut-on-the-desktop-in-windows-8-1.html"> <img src="//savtec.org/img/images_7/how-to-create-a-search-shortcut-on-the-desktop-in-windows-81_6.png" alt=""> </a></div> <div class="post-h1"> <a href="/articles/howto/how-to-create-a-search-shortcut-on-the-desktop-in-windows-8-1.html">Cara Buat Pintasan Carian pada Desktop dalam Windows 8.1</a> </div> </div> </div> <div class="col-md-6"> <div class="post"> <div class="prevnext-title">Artikel sebelumnya</div> <div class="post-img"><a href="/articles/smart-home/how-to-create-a-routine-with-amazon-alexa.html"> <img src="//savtec.org/img/images/how-to-create-a-routine-with-amazon-alexa.jpg" alt=""> </a></div> <div class="post-h1"> <a href="/articles/smart-home/how-to-create-a-routine-with-amazon-alexa.html">Bagaimana Membuat Rutin Dengan Amazon Alexa</a> </div> </div> </div> </div> </div> </div> <footer> <div class="container"> <div class="langs-block"> <ul class="langs-list"> <li class="site-lang"><a href="https://www.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-TH"></i></a></li> <li class="site-lang"><a href="https://de.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-DE"></i></a></li> <li class="site-lang"><a href="https://ar.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-AE"></i></a></li> <li class="site-lang"><a href="https://bg.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-BG"></i></a></li> <li class="site-lang"><a href="https://cs.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-CZ"></i></a></li> <li class="site-lang"><a href="https://da.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-DK"></i></a></li> <li class="site-lang"><a href="https://el.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-GR"></i></a></li> <li class="site-lang"><a href="https://es.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-ES"></i></a></li> <li class="site-lang"><a href="https://et.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-EE"></i></a></li> <li class="site-lang"><a href="https://fi.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-FI"></i></a></li> <li class="site-lang"><a href="https://fr.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-FR"></i></a></li> <li class="site-lang"><a href="https://he.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-IL"></i></a></li> <li class="site-lang"><a href="https://hi.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-IN"></i></a></li> <li class="site-lang"><a href="https://hr.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-HR"></i></a></li> <li class="site-lang"><a href="https://hu.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-HU"></i></a></li> <li class="site-lang"><a href="https://id.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-ID"></i></a></li> <li class="site-lang"><a href="https://it.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-IT"></i></a></li> <li class="site-lang"><a href="https://ja.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-JP"></i></a></li> <li class="site-lang"><a href="https://ko.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-KR"></i></a></li> <li class="site-lang"><a href="https://lt.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-LT"></i></a></li> <li class="site-lang"><a href="https://lv.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-LV"></i></a></li> <li class="site-lang"><a href="https://ms.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-MY"></i></a></li> <li class="site-lang"><a href="https://nl.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-NL"></i></a></li> <li class="site-lang"><a href="https://no.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-NO"></i></a></li> <li class="site-lang"><a href="https://pl.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-PL"></i></a></li> <li class="site-lang"><a href="https://pt.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-PT"></i></a></li> <li class="site-lang"><a href="https://ro.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-RO"></i></a></li> <li class="site-lang"><a href="https://ru.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-RU"></i></a></li> <li class="site-lang"><a href="https://sk.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-SK"></i></a></li> <li class="site-lang"><a href="https://sl.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-SI"></i></a></li> <li class="site-lang"><a href="https://sr.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-RS"></i></a></li> <li class="site-lang"><a href="https://sv.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-SE"></i></a></li> <li class="site-lang"><a href="https://tr.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-TR"></i></a></li> <li class="site-lang"><a href="https://ua.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-UA"></i></a></li> <li class="site-lang"><a href="https://vi.savtec.org/articles/coding/how-to-create-a-rss-reader-app-in-javascript.html"><i class="flag flag-VN"></i></a></li> </ul> </div> <div class="row align-items-center"> <div class="col-md-3"> © <script> var currentTime = new Date(); var year = currentTime.getFullYear(); document.write(year); </script> <a href="/">Savtec</a> </div> <div class="col-md-9"> Maklumat berguna dan tips pembangunan web. Pengaturcaraan, reka bentuk web, CSS, HTML, JAVASCRIPT. Konfigurasi dan pasang semula WINDOWS. Penciptaan tapak dan aplikasi dari awal. </div> </div> </div> </footer> <link rel="stylesheet" href="css/flags.css"> <script src="https://unpkg.com/simple-jekyll-search@1.5.0/dest/simple-jekyll-search.min.js"></script> <script> SimpleJekyllSearch({ searchInput: document.getElementById('search-input'), resultsContainer: document.getElementById('results-container'), json: '/search.json', searchResultTemplate: '<li><a href="{url}">{title}</a></li>' }) </script> <link rel="stylesheet" type="text/css" href="//cdnjs.cloudflare.com/ajax/libs/cookieconsent2/3.1.0/cookieconsent.min.css" /> <script src="//cdnjs.cloudflare.com/ajax/libs/cookieconsent2/3.1.0/cookieconsent.min.js"></script> <script> window.addEventListener("load", function(){ window.cookieconsent.initialise({ "palette": { "popup": { "background": "#edeff5", "text": "#838391" }, "button": { "background": "#4b81e8" } }, "theme": "classic", "position": "bottom-right" })}); </script> </body> </html>