Полное руководство: от базового использования до ускорения базы в 10 раз
"Коллекционер" — это прогрессивное веб-приложение (PWA) для ведения коллекций предметов (монеты, марки, книги, игрушки и т.д.).
Создавайте коллекции, группируйте предметы, добавляйте описания и характеристики по шаблонам.
Прикрепляйте фото к предметам. Поддержка сжатия, формата WebP и автоматических миниатюр.
Резервное копирование в файл .json. Версионирование формата для совместимости.
Перенос коллекций между устройствами через 6-значный код (требует интернет).
Правильная настройка сжатия — это экономия места в 10-20 раз и ускорение загрузки в 5 раз.
| Параметр | Рекомендация | Эффект |
|---|---|---|
| Макс. ширина | 1920 px (для экранов) или 1280 px (для экономии) | Уменьшает размер в 2-4 раза |
| Качество | 70-80% | Визуально неотличимо, экономия 30-50% |
| Формат | WebP (если поддерживается) или JPEG | WebP экономит ещё 20-30% относительно JPEG |
При оптимизации приложение создаёт две версии каждого фото:
full — полное изображение (для просмотра в карточке)thumb — миниатюра 300px (для быстрого отображения в списке)Благодаря этому список коллекций грузится мгновенно, даже если в базе тысячи фото.
В нижней части страницы отображается индикатор:
💾 Занято: 14.2 МБ из 2.0 ГБ (1%)
Вывод: оптимизация фото — самый эффективный способ освободить место.
collections_YYYY-MM-DD.json| ✅ Оптимизировать | Сжать фото по текущим настройкам + создать миниатюры |
| ⏭️ Без изменений | Загрузить как есть (быстро, но база будет большой) |
| ⚙️ Отмена → Настройки | Сначала изменить параметры сжатия, затем импортировать заново |
Эти шаги гарантированно ускорят работу приложения и уменьшат размер базы.
При импорте большого файла всегда выбирайте "✅ Оптимизировать". Это:
Не гонитесь за максимальным качеством:
Разница между 100% и 70% качества визуально почти незаметна, а размер файла уменьшается в 2-3 раза.
Если вы добавляете фото вручную:
| Показатель | Без оптимизации | С оптимизацией |
|---|---|---|
| Размер базы (100 фото) | ~300 МБ | ~15-25 МБ |
| Время загрузки списка | 5-10 сек | <1 сек |
| Время экспорта | 2-5 мин | 10-30 сек |
| Риск переполнения | Высокий | Минимальный |
(async () => { const db = await new Promise(r => { const req = indexedDB.open("CollectionsDB"); req.onsuccess = () => r(req.result); }); const tx = db.transaction(["collections"], "readonly"); const store = tx.objectStore("collections"); const all = await new Promise(r => { const req = store.getAll(); req.onsuccess = () => r(req.result); }); let newFmt = 0, oldFmt = 0; all.forEach(c => c.items?.forEach(i => { if (i.images?.[0]?.full) newFmt++; else if (typeof i.images?.[0] === "string") oldFmt++; })); console.table({newFormat: newFmt, oldFormat: oldFmt, status: oldFmt===0?"✅ ALL OPTIMIZED":"⚠️ NEEDS OPTIMIZATION"}); })();Если oldFormat: 0 — все фото имеют миниатюры.Нужна помощь или есть вопросы? Обратитесь к разработчику:
Email: info@so-be-ru.ru | Telegram: @so-be-ru.ru
Версия инструкции: 2.0 • Обновлено: 2026