LINUX.ORG.RU

Генерация поля из 8000 картинок на стороне клиента VS генерация картинки на сервере


1

1

Господа, вопрос такой.

Мне нужно в одном проекте показать, так сказать, «замороженное состояние» системы.

Это состояние описывается ~8000 картинками-пиктограммами. Одна пиктограмма кодируется двумя ASCII символами (первый символ - подложка пиктограммы, второй - рисунок поверх подложки).

Чтобы визуализировать эти ~8000 пиктограмм, я могу поступить двумя путями:


1. Передавать в браузер ~16Кб текстовых данных, и в браузере ява-скриптом визуализировать эти 8000 пиктограмм (размер пиктограммы 24x24 пикселя).

Тут проблема - а не пополохеет ли браузеру, если разместить 8000 картинок, каждая пара из которых будут с наложением друг на друга? А не замучается ли пользователь дожидаться конца развертывания такого представления информации?


2. Генерировать картинку на стороне сервера средствами PHP.

Тут вылазит проблема нагрузки на сервер, проблема хранения кеша чтоб не перегенерировать картинки заново, синхронизация картинок и базы.


Вопрос. По какому пути лучше всего пойти? Как бы вы решали такую задачу?

★★★★★

Генерировать по крону в статическое изображение с nice 19

dhameoelin ★★★★★
()

а не пополохеет ли браузеру, если разместить 8000 картинок, каждая пара из которых будут с наложением друг на друга

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

Мне кажется вообще ты всё делаешь не так. Ты вот сможешь окинуть взором 8к картинок и понять что каждая из них означает и что система представляет из себя? Нельзя вот так сразу всё вываливать на юзера.

Ну и калькулятор в руки возьми и посчитай 8000 * 24 * 24 сравнив со скажем 1920 * 1080.

Kalashnikov ★★★
()
Ответ на: комментарий от Kalashnikov

Ну и калькулятор в руки возьми и посчитай 8000 * 24 * 24 сравнив со скажем 1920 * 1080.

Фактически там ~4000 пиктограм. Это в моем случае 36x110 картинок, т. е. 864x2640 pix. В окно браузера с прокруткой влезет без проблем.

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от Xintrea

Удваиваю кроно-решение или запилить с автоподгрузкой потипу google-maps (или фоновой).

anonymous
()

Imagemagick + OpenCL (Нвидия или Радеон)
По крайней мере, миниатюрки для Gallery делает на ура и очень быстро.
Естественно, не подходит в случае арендной VPS/VDS, покупка карточки, и бла-бла-бла.
Но возможность есть, да.

Myp3ik ★★
()
Последнее исправление: Myp3ik (всего исправлений: 2)
Ответ на: комментарий от Kalashnikov

Ты это к чему? Там вроде равномерное распределение.

Хочешь сказать что сгенерить таблицу 36x110 с двумя картинками в каждой ячейке достаточно ненапряжно для браузера?

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от Xintrea

Я подозреваю, это такой ироничный намек, что около 36*110 не просто окинуть одним взглядом.

Расскажи про идею, если не секрет.

cdshines ★★★★★
()
Ответ на: комментарий от Xintrea

Хочешь сказать что сгенерить таблицу 36x110 с двумя картинками в каждой ячейке достаточно ненапряжно для браузера?

вполне нормально, если будешь грамотно размещать. К примеру, одну с прозрачным фоном, другую в качестве background-image ячейке таблицы или диву.

браузеры тормозят не из-за картинок в основном, а из-за кучи тяжелых и часто ненужных яваскриптов.

Картинки собери в sprite само собой.

BaBL ★★★★★
()
Ответ на: комментарий от Xintrea

Хочу сказать что понять такую таблицу - напряжно невозможно для землянина. Сгруппируй свои иконки, или расставь приоритеты спрятав большую часть. Может формат отображения другой какой-нибудь будет лучше. Тогда и проблемы с ресурсами отпадут.

Таблица то ерунда для яваскрипта, браузер может офигеть от 4к картинок одновременно.

Kalashnikov ★★★
()
Ответ на: комментарий от Kalashnikov

Так никто не говорит, что что в этих картинках все будет хаотично. Там вполне конкретная информация отображается, картинки друг с другом связаны.

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от risenshnobel

Отрисовал и все, обновлять ненужно.

В общем, я начал делать через JavaScript+генерация таблицы. Каждая ячейка имеет фоновую картинку-подложку в виде бакграунда и картинку поверх. Бакграундов и картинок у меня немного, около двадцати, так что даже текстуру со всеми картинками не имеет смысла делать.

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от Xintrea

Что ж вы творите-то..

Во-первых, безусловно, на клиенте, во-вторых канвасом.

В случае с dom, прокрутка такого количества элементов определенно будет тормозить. А таблицу вообще следует использовать только для табличных данных.

Это такая болезнь что ли -_- костылизм.

special-k ★★★
()
Ответ на: комментарий от Xintrea

Другой не тормозящий вариант реализации, это, очевидно, специализированный шрифт (если монохромность не помеха) http://fontello.com/ При этом, два дива должны находиться один под другим (фронтальные и фоновые пиктограммы) с разными цветами шрифтов соответственно. Кастуй Vit, если что, он, наверняка, больше про шрифты расскажет.

special-k ★★★
()
Последнее исправление: special-k (всего исправлений: 3)

На клиенте даже без канвасов все будет хорошо.

zz ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.