|
|
|
| Добрый день,
понадобилось для сайта сделать простенький парсинг новостей. В общем то все работает, но слишком долго получаю данные от другого сайта.
Пишу функцию:
<?php
function rss_archive($xml='') {
if($xml != '') {
$i = 1;
$rss = simplexml_load_file($xml);
foreach ($rss->channel->item as $item) {
if($i <= 5) {
?>
<div class="sidebar_block">
<div class="date"><?php echo date("d.m.Y",strtotime($item->pubDate)); ?></div>
<a href="<?php echo $item->link; ?>" title="<?php echo $item->title; ?>" target="_blank"><?php echo $item->title; ?></a><br>
<?php echo mb_substr($item->description,0,100,'UTF-8').'...'; ?>
</div>
<?php
}
$i++;
}
}
}
?>
|
Думаю как же правильнее сделать "кеширование данных", или вернее проверку на необходимость загрузить файл заново.
Данный блок новостей из RSS отображается на каждой странице сайта соответственно каждый раз идет парсинг, что очень тормозит загрузку сайта. | |
|
|
|
|
|
|
|
для: ZetRider
(06.04.2012 в 14:58)
| | а БД нельзя использовать? | |
|
|
|
|
|
|
|
для: Lotanaen
(06.04.2012 в 15:33)
| | можно, думаю даже нужно
какой принцип работы проверки должен быть? | |
|
|
|
|
|
|
|
для: ZetRider
(06.04.2012 в 15:41)
| | а как часто новостной канал обновлять нужно на сайте? | |
|
|
|
|
|
|
|
для: Lotanaen
(06.04.2012 в 15:46)
| | думаю 2-3 раза в день, к примеру
в 9 утра
в 14.00
и вечером 19.00
Смотря какой способ меньше ест ресурсов. можно и 1 раз в день по утрам | |
|
|
|
|
|
|
|
для: ZetRider
(06.04.2012 в 15:51)
| | ну поставьте парсинг на крон и заносите в БД, а на страничках уже из БД выводите новости | |
|
|
|
|
|
|
|
для: Lotanaen
(06.04.2012 в 15:53)
| | пришло время поработать с cron.
Это видимо самый простой и лучший вариант? | |
|
|
|
|
|
|
|
для: ZetRider
(06.04.2012 в 15:57)
| | ну да, зачем тормозить выдачу странички пользователю? а так у вас все новости в базе будут храниться - можно архив новостей, например, сделать или что-то в этом роде | |
|
|
|