Форум сайта python.su
Заранее прошу прощения, что вопрос не совсем по питону, но в основе проекта лежит Django, да и вообще задача интересная.
Собственно, надо реализовать веб-интерфейс для клеточного автомата, который будет рассчитываться на сервере. Проблема в том, что среди начальных требований есть задание начальных данных мышкой, то есть смена состояния клеток по клику, дальнейшие результаты расчета будут возвращаться, скорее всего, в виде картинок.
HTML5 Canvas отпадает, потому что требуется поддержка IE. Я пробовал генерировать структуру на сервере и вставлять в DOM самой HTML-страницы - но на поле 1000 на 1000 браузер уже начинает просить пощады и очень долго рассуждать. А flash я, к сожалению, знаю довольно плохо.
В общем, прошу совета - как реализовать на клиенте задание начальных данных мышкой для больших полей и как сериализовать-десериализовать это поле для передачи на сервер за минимальное время? JSON почему-то не кажется хорошим решением, а бинарный формат яваскриптом реализовывать - это злобно…
Отредактировано (Апрель 5, 2011 23:37:25)
Офлайн
EnchantnerНе все так плохо с канвасом. http://code.google.com/p/explorercanvas/. В работе с растром там многого нет, но вектор работает неплохо.
HTML5 Canvas отпадает, потому что требуется поддержка IE.
Офлайн
PooH
А как со скоростью-то? Я понимаю, что рисование квадрата в любом случае быстрее DOM-манипуляции, но все зависит от реализации…
И да, насчет SVG (Raphael) думал, но там опять же та же ерунда - поддержка SVG появилась только в IE 9, а всякие svg2swf - ужасно неудобные и тормозные…
Отредактировано (Апрель 6, 2011 09:44:30)
Офлайн
EnchantnerА фиг знает, пробовать надо :) Я делал на нем карту интерактивную, вроде хватало скорости. В принципе он почти напрямую в VML операции транслирует.
PooH
А как со скоростью-то? Я понимаю, что рисование квадрата в любом случае быстрее DOM-манипуляции, но все зависит от реализации…
Офлайн
А по сериализации никто ничего не посоветует хорошего? Как можно на сервер максимально компактно это все отправить?
Офлайн
JSON + Zip
если вариантов значений клеток не много, что-то типа RLE сжатия
Офлайн
EnchantnerМожет битовый массив? На клиент придет набор целых чисел. Побитные операции в javascript есть.
Как можно на сервер максимально компактно это все отправить?
Офлайн