#html
#HTML
Вопрос:
Каков правильный подход, если вы планируете реализовать (сложную, интерактивную) сетевую диаграмму в «HTML5», которая является частью инструмента моделирования — например, чтобы позволить пользователю разрабатывать рабочий процесс?
Является ли SVG правильным подходом или использует непосредственно Javascript / Canvas?. Существует ли какое-либо продуктивное приложение, которое доказало, что это выполнимо в HTML5 (сетевая модель может быть довольно сложной), особенно в отношении производительности?
Мне не нужны какие-либо детали реализации, просто подсказка к «правильной» технологии, если вы будете «вынуждены» делать это в HTML5…
Спасибо.
Комментарии:
1. Я бы предпочел флэш-выигрыши как в совместимости, так и в производительности. Но это только я.
2. Да, чтобы было ясно: вопрос в контексте отсутствия свободы выбора другой технологии по какой-либо причине.
Ответ №1:
svg теперь имеет поддержку от ie9. canvas поддерживается в большинстве современных браузеров, а css поддерживается всеми.
преимущество svg в том, что он масштабируется («изображение» представляет собой векторную карту, поэтому пользователь может иметь его в любом размере, который он предпочитает), но производительность рендеринга немного дрянная. Вы можете привязать некоторые события к элементам..
canvas похож на GDLib или ImageMagick, у вас есть белый лист, на котором вы можете рисовать. Поэтому, если вы вносите изменения, сначала вам нужно очистить холст и все перерисовать. Вы не знаете, на какой элемент нажал пользователь, и можете связывать события только для всего элемента canvas.
Альтернативой может быть использование HTML и DOM с CSS, поскольку вы просто можете начать перемещать элементы сети вокруг и привязывать события к узлам вашей сети. Но строки довольно сложно реализовать (можно использовать повернутый div с верхней границей)
Лично я бы выбрал гибрид между svg и простым html, но опять же, я не знаю всех вариантов использования вашего приложения.
Комментарии:
1. Спасибо… Я также нашел интересную статью, в которой сравниваются SVG и Canvas: css.dzone.com/articles/how-choose-between-canvas-and