aleks78888
@aleks78888
http://gamesib.ru

Как уменьшить нагрузку на сайт от PHP кода при парсинге новостных RSS-лент?

У меня на сайте установлен код PHP
header("Content-Type: text/html; charset=utf-8");
$url = "https://vkrss.com/lJOxFYPHLRiItCUE/[xfvalue_vk]?filter=all"; // Адрес до RSS-ленты
$rss = simplexml_load_file($url);
foreach ($rss->channel->item as $items) {
echo <<<HTML
<h5><font color="white"><code>{$items->pubDate}</code></font></h5>
<p><font color="white">{$items->description}</font></p>
<a href="{$items->link}"><button class="label label-success" style="text-decoration: none;">
<font color="white"> Подробнее</font> 
</center>
</button>
</a>
<hr>
HTML;
}

После установки на страничку она грузится дольше и иногда код вообще не срабатывает, либо срабатывает неправильно. Как можно уменьшит нагрузку на страничку?
Может не выводить на прямую с rss ленты на страничку, а сделать запись в файл на хосте и оттуда уже парсить? Может помочь?
Подкиньте идейки из личного опыта, заранее большое спасибо)
  • Вопрос задан
  • 133 просмотра
Решения вопроса 1
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
1. Забор новостей - раз в N-минут. Можно по запросам, можно через cron.
2. После того, как забрали - кэшируем в файл ("сырой" кэш).
3. Затем - обрабатываем так, как нужно для вывода на сайте и сохраняем тоже в файл ("подготовленный" кэш).
4. Выводим - всегда из подготовленного файл-кеша (чтобы снизить нагрузку на хостинг).
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Narts
Страницу грузит не сам код, а процесс получения данных с другого ресурса. Еще немаловажную роль играет то, как быстро сайт vkrss.com отдаст данные.

Как вариант - кешировать данные (обновлять каждые N минут/часов/дней) и выводить ее непосредственно из кеша.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы