#android #xml #xml-parsing
#Android #xml #xml-синтаксический анализ
Вопрос:
Я пишу приложение для Android, которое анализирует RSS-каналы из разных источников. Что я делаю, так это то, что на удаленном сервере я объединяю все RSS-каналы в один большой XML-файл, а затем анализирую его на устройстве (используя анализатор SAX), вместо того, чтобы переходить на каждый сайт по отдельности. Итак, я в основном кэширую RSS-каналы для повышения производительности, и это работает довольно хорошо.
Что я хочу сделать, так это предоставить пользователю возможность выбирать, какие источники каналов они хотят видеть. Поэтому, если я кэширую сайты A, B, C, пользователь может выбрать, что они хотят видеть только сайты A и C. Я не уверен, что лучший способ настроить кэширование XML. Я могу либо создавать меньшие XML-файлы, либо оставаться с одним большим XML-файлом и удалять элементы, которые пользователь не хочет при разборе.
Не уверен, какой дизайн лучше всего подходит для мобильного устройства. Эффективнее ли анализировать кучу файлов меньшего размера или один большой файл.
Комментарии:
1. Я не понимаю, как только один источник на сервере здесь «лучше» (кэширование определенно может быть). Хотя для нескольких источников потребуется больше подключений, это, вероятно, относительно небольшое количество, и разделенные источники не должны содержать больше данных — например, индивидуальная выборка = загружаются только необходимые данные — если только объединенный источник не делает что-то действительно умное в объединении данных канала.
Ответ №1:
Одно из преимуществ, которое я вижу в разделении данных на разные файлы, заключается в том, что это одноразовая операция. Таким образом, вы разбиваете его на разные файлы в первый раз, когда получаете его с сервера (что может быть медленным), но если вы повторно используете эти данные, вы можете просто загрузить их из файлов, и вам не нужно фильтровать позже. Таким образом, пользователю будет казаться быстрее, если выбрать опцию A, B или C.
Но если вы используете данные только один раз, вы больше не получаете этого преимущества.
Комментарии:
1. Я в значительной степени использую данные только один раз за запрос. Данные часто меняются, чтобы их можно было использовать один раз.
2. В таком случае, возможно ли разделить данные на сервере и отправить несколько файлов? Я думаю, что это все равно сэкономит обработку на устройстве
3. Да, определенно, похоже, что разделение их на разные файлы — лучший подход.