Много HTML-холстов или один большой? - PullRequest
5 голосов
/ 21 июня 2011

Я планирую интерфейс для отображения множества маленьких виджетов (нарисованных на <canvas>), которые могут перемещаться (например, в списке, который сортируется различными способами с помощью jQuery). Количество виджетов может быть от 10 до 100.

Я мог бы сделать это одним большим холстом и просто нарисовать множество виджетов в нужном месте. Или у меня может быть много <canvas> ses в <li> s. Достаточно ли легки холсты для такого рода вещей? Есть ли веская причина для выбора одного или другого?

Ответы [ 2 ]

2 голосов
/ 21 июня 2011

Я должен был сделать нечто подобное 3 года назад, чтобы представить BPM .Я реализовал это с помощью <canvas> (я построил библиотеку поверх обоих canvas и VML - для IE -), и я выбрал второй предложенный вами вариант.

Проблема с canvas заключается в том, что если у вас многовзаимодействий (нажмите на конкретный элемент, переместите его и т. д.), а затем каждый раз, когда вам нужно перекрасить все (и это, для большого холста, полного элементов, не является лучшим с точки зрения производительности).Я предпочел представлять X-заполнители (каждый заполнитель - это div, содержащий холст), и я заметил, что производительность была лучше, и, очевидно, DOM-событиями (прикрепленными к контейнеру canvas) было намного проще управлять.такого рода интерактивные вещи можно использовать с помощью SVG (и сейчас я бы предпочел это), например, raphaelJS .Для анимации и двумерного представления без взаимодействия я бы использовал <canvas>.

1 голос
/ 08 июля 2011

Я слышал, что производительность понижается на WAAAAAYYYYYY для холста высотой более 600 пикселей. Так что вы можете обойти это. Ищу ссылку сейчас ...

...