Какие существуют способы хранения ресурсов в мобильном HTML5-приложении?

Ситуация: Есть Blackbery PlayBook, под который пишется приложение на HTML+JS (WebWorks фреймворк). Приложению требуется около 20 тыс. файлов ресурсов (картинки png), средний размер каждого ~8 килобайт.
Проблема: В SDK есть баг, из-за которого невозможно собрать приложение, состоящее из более чем 5000 файлов.
Задача: уменьшить количество используемых файлов.


Возможные решения:

1. Сгруппировать ресурсы в бóльшие файлы, читать по мере необходимости.

— Очень накладно по памяти: файл будет целиком загружаться в память (все N МБ), а приложению одновременно будут нужны ресурсы из разных файлов.

2. Создать локальную БД (HTML5 storage), загружать в неё ресурсы с сервера при первом старте.

— Хотелось бы избежать необходимости загрузки чего-либо из сети.

3. Архивировать ресурсы в большой файл, разархивировать в БД при первом запуске.

— Приложение будет занимать вдвое больше места, чем ему нужно.


Может, я что-то упускаю из вида?
  • Вопрос задан
  • 2577 просмотров
Пригласить эксперта
Ответы на вопрос 5
SabMakc
@SabMakc
А в чем проблема действовать по 1му варианту?
Объединяем по 4 файла в один, объем увеличивается до 32КБ, не так уж и критично.
И можно ли использовав часть большого фала, выгрузить его из памяти совсем?

P.S. 20 000 картинок на проект? А не много ли? Если так разбита анимация — то имеет смысл объединить анимацию в 1 файл для каждой группы.
P.S.S. а что за проект такой? Возможно, есть способ просто сократить количество файлов? А то их нереально много (почти 160 метров если считать 8КБ на файл).
Ответ написан
taliban
@taliban
php программист
base64
спрайты
архивы
итп, придумать при желании можно много чего.
Ответ написан
Почему бы ресурсы не поставлять отдельно от приложения? Тогда оно будет масштабируемо.
Скажем, app.js + kiev.map.
Ответ написан
olegbarabanov
@olegbarabanov
Программист, фрилансер (ИП)
1) Используя manifest. В нем необходимо будет указать эту орду файлов. Загрузки будут по мере необходимости, зато второй раз не будут грузиться. Поддержка манифеста в браузерах
2) Самостоятельный механизм кеширования с внесением в webSQL. Поддержка webSQL в мобильных
Ответ написан
@WEBIVAN
Не знаю всех тонкостей html5, в playbook, но если возможно удалять файлы, возможно стоит сложить «базу» в 1 файл, при первом запуске нарезать его в WebSQL и удалить?
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы