Как читать очень большой rss / atom - PullRequest
0 голосов
/ 25 июля 2010

У меня очень большой RSS (который может быть 1M), поэтому, когда я читаю его, это занимает много времени.

Если я установлю количество прочитанных элементов, например: 4, я думаю, что это не гарантирует, что я прочту все данные, которые были обновлены с момента последнего чтения (и я потеряю некоторые элементы),

Что я могу сделать?

Я использую Google AJAX Feed Api для чтения RSS / Atom.

Последнее обновление:

Я использую Google AJAX Feed для обработки RSS, затем сохраняю данные в своей базе данных.

Ответы [ 2 ]

1 голос
/ 25 июля 2010

Редактировать, возможное конкретное решение:

Если доступ к ограниченному набору элементов из ленты действительно ускоряет доступ к Google Feed API, просто продолжайте запрашивать самые последние элементы, пока не встретите элемент, который вы видели ранее. Если канал не был переупорядочен, это обеспечит просмотр всех элементов (однако помните, что элементы канала могут быть обновлены - эти изменения будут потеряны ).

Если доступ к ограниченному набору элементов не дает выигрыша в производительности, то необходимо рассмотреть другой подход, такой как серверный помощник (или другой метод доступа к каналам).

Общая информация (не относится к данному вопросу):

Сервер каналов должен правильно обрабатывать заголовок If-Modified-Since . Поэтому, хотя загрузка 1M + не будет сохранена напрямую, загрузку необходимо выполнять только в том случае, если канал был изменен.

Кроме того, вы можете запросить только диапазон данных с сервера, если сервер поддерживает запросы диапазона, и вручную объединить данные. Даже если сервер не поддерживает запросы диапазона, вы можете прервать загрузку после того, как достаточно для продолжения (использование этого подхода позволит вам проверить входящие данные и завершить их в нужное время).

В любом случае вы несете ответственность за обеспечение того, чтобы было прочитано достаточно - оттуда может быть проще всего "исправить" локальный XML и передать его в нормальный процессор каналов.

И ни одно из перечисленных выше действий невозможно выполнить в простом клиентском JavaScript: -)

0 голосов
/ 25 июля 2010

Черт возьми, это определенно был бы целый архив. Я знаю, насколько сложно анализировать большие XML-файлы!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...