Быстрое обновление RSS Reader с HTML? - PullRequest
0 голосов
/ 17 июня 2019

Немного предыстории: я почти ничего не знаю о программировании, и начал изучать HTML, Javascript и CSS только пару дней назад. Я знаю основные элементы HTML, некоторые вещи CSS, такие как цвета, и назначение Javascript и его библиотек (например, jQuery). Но пока не знаю, как что-либо программировать.

То, что я пытаюсь сделать, - это создать простую веб-страницу HTML, которая отображает только канал RSS - тот, который обновляет канал каждые 5-10 секунд.

Я нашел несколько веб-сайтов, которые преобразуют ссылку RSS (которая, конечно, содержит код XML) в простой код Javascript (например, Feedbucket ), который можно вставить в сверхосновную страницу HTML. Это работает, однако, я заметил, что даже когда я обновляю веб-страницу HTML, новые элементы в ленте загружаются не раньше, чем через 10-20 минут после публикации.

Я думаю, это потому, что конвертирующие сайты хранят данные RSS на своих серверах, а моя HTML-страница получает их от них. Но они обновляют только свой серверный файл каждые 10-20 минут, поэтому мой канал обновляется только каждые 10-20 минут. Я бы хотел, чтобы он загружался почти сразу (например, 5-10 секунд).

Итак, у меня появилась идея, что я могу (теоретически) просто открыть ссылку на файл XML для этого RSS-канала и обновлять его каждые 10 секунд. Чтобы заставить компьютер сделать это, я нашел простой код, который отображает XML-документ от оригинального RSS-провайдера. Я также добавил мета-обновление, чтобы обновлять страницу каждые 10 секунд. Мой код показан на картинке ниже.

Я говорю на четырех языках, но XML не является одним из них. Теперь это проблема, так как мой HTML-сайт отображает только XML. Итак, я хотел бы спросить вас, ребята, как мне «преобразовать» отображаемые данные XML в простой для чтения HTML-формат (где он отображает заголовок, краткое описание и опубликованное время). Я думаю это называется разбор? Но мой разум еще недостаточно развит, чтобы понять все сложные учебники, которые я нашел в Интернете, поэтому я был бы признателен, если бы кто-нибудь мог объяснить, как сделать это, используя базовые HTML, CSS и Javascript (и jQuery без плагинов, если это абсолютно необходимо). Это может быть очень простая вещь, мне не нужно ничего необычного. Пожалуйста, дайте мне знать, если вы хотите, чтобы я уточнил что-нибудь. Спасибо!

РЕДАКТИРОВАТЬ: Я попытался добавить этот код (я заменил URL_OF_XML_DOC), но у меня пустой экран. Правильно ли я включил код Javascript? enter image description here

1 Ответ

1 голос
/ 17 июня 2019

RSS считается умирающей технологией, и, к сожалению, вы ничего не можете сделать, чтобы ускорить RSS-каналы другого сайта. Однако другой веб-сайт может использовать WebSub для ускорения собственных RSS-каналов, интегрируясь с поставщиком каналов, таким как Superfeedr .

.

Если XML-файл более актуален, чем сам RSS-канал, вы можете подключиться непосредственно к нему и вывести его содержимое в HTML-документ. Это проще всего сделать, загрузив XML-файл с JavaScript с помощью XMLHttpRequest, а затем обновив HTML-документ с его содержимым:

function loadXMLDoc(xml_url) {
  var xmlhttp = new XMLHttpRequest();
  xmlhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
      // Update the HTML with the XML content
      document.getElementByTagName("body")[0].innerHTML = xml.responseXML;
    }
  };
  xmlhttp.open("GET", xml_url, true);
  xmlhttp.send();
}

loadXMLDoc('URL_OF_XML_DOC');
...