2012-01-26 3 views
33

Я начинаю новый проект с использованием HTML5. Двумя наиболее популярными графическими инструментами являются KineticJS и RaphaelJS. Если у вас есть опыт их использования, есть ли у вас какие-либо советы? Какие функции они предлагают, и есть ли преимущество в использовании одного над другим?Kineticjs vs Raphaeljs

E.g. только RaphaelJS работает с устаревшими браузерами (но это не является обязательной функцией).

+0

Вы должны быть более конкретными в отношении того, какой проект вы выполняете, различные методы подходят для разных потребностей. – bennedich

+1

@ bennedich Мне просто нужно знать, каковы различия в возможностях обоих из них –

+1

Обратите внимание, что автор RaphaelJS также создал SnapSVG: http://snapsvg.io/, который лучше подходит для современных браузеров. –

ответ

52

Самая большая разница между RaphaelJS и KineticJS заключается в том, что RaphaelJS использует SVG, а KineticJS использует HTML5 Canvas для визуализации.
Так что это действительно зависит от того, какой проект вы делаете.

Вот некоторые полезные ссылки, которые вы должны проверить относительно SVG против Canvas:

  • Thoughts on when to use Canvas and SVG (также описывает гибридный подход)
  • Саймон Sarris отлично reply в этом StackOverflow нить (я также опубликовал некоторые benchmarks между SVG и холста в том же потоке)

Чтобы подвести итог:

  • Если вы хотите создать некоторые интерактивные диаграммы, я бы пошел с RaphaelJS, потому что это проще сделать с SVG (KineticJS предоставляет некоторый абстрактный API, который также должен сделать это довольно легко).
  • Если вы хотите визуализировать огромное количество фигур/объектов, я бы рекомендовал использовать KineticJS, поскольку холст-шкалы обычно лучше с огромным количеством фигур/объектов, которые нужно рисовать, и KineticJS использует несколько слоев для улучшения производительности рендеринга.
+3

Я не согласен с тем, что SVG лучше работает для диаграмм, чем на холсте. Взгляните на эту демонстрацию: http://meteorcharts.com/ Canvas может обрабатывать сотни тысяч точек данных и оставаться отзывчивыми даже на мобильных устройствах. SVG просто не может этого сделать. –

+1

Конечно, если вам нужно иметь дело с огромным количеством фигур/точек, которые нужно нарисовать, чем холст, масштабируется лучше, чем SVG (см. Тесты в потоках). Но для простых интерактивных графиков (штрих-кодов, пиар-карт и т. Д.) SVG достаточно быстр, и если вы используете [D3.js] (http://d3js.org/), вы можете создать несколько действительно впечатляющих интерактивных графиков с относительно небольшим усилием. –

+0

SVG или Canvas? Выбор между ними. http://dev.opera.com/articles/view/svg-or-canvas-choosing-between-the-two/ – Cherven

Смежные вопросы