Является ли Canvas излишним для бизнес-приложения?

#html

#HTML

Вопрос:

Я создаю бизнес-приложение, которое в основном включает таблицы и другие типичные элементы формы. Однако из-за особенностей моего приложения мне необходимо объединить группы этих элементов в динамическую древовидную структуру, которая займет всю доступную область экрана. Если объем данных невелик, будет предусмотрена некоторая форма интеллектуальной прокрутки, позволяющая пользователям сосредоточиться на определенных областях дерева. Его можно было бы назвать продвинутой веб-формой визуализации данных.

Исторически сложилось так, что я бы добился этого простым использованием divs и javascript. Однако элемент canvas кажется более логичным способом построения моей структуры. Однако большинство применений элемента canvas, которые я могу найти, ориентированы на графику и анимацию (в основном игры). Является ли canvas излишним для этого? Выиграю ли я от его использования? Есть ли альтернативы?

введите описание изображения здесь

Комментарии:

1. Я думаю, это зависит от вашего приложения. DOM обычно работает быстрее, поскольку браузеры оптимизированы для максимально быстрого отображения DOM. И DOM выглядит более аутентично, чем изображения на canvas, из-за различий в браузерах. Вы также можете подумать о пользователях, не владеющих javascript, и тех, кто использует браузеры, не поддерживающие canvas.

2. Я просто не могу добиться того, чего хочу, без javascript. Пользовательский интерфейс будет очень динамичным, и обратная передача недопустима.

3. У меня есть. Почему это было бы более подходящим, чем canvas?

Ответ №1:

Да, canvas — это излишество. Это в значительной степени доска для рисования и не более того. Это, конечно, не то, в чем я ожидал бы создавать пользовательские элементы управления. Игры и т.д. Больше подходят, поскольку они на самом деле не являются стандартными пользовательскими элементами управления и не должны вести себя как таковые.

Древовидная структура может быть легко реализована с помощью ряда вложенных ul файлов. Используя некоторый JavaScript для расширения, сворачивайте их, добавляя и удаляя классы.

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

Редактировать: Я бы держался подальше от canvas только из-за накладных расходов на рисование. Если вы можете расширить стандартный JavaScript treeview, чтобы добавить больше функциональности, это показалось бы мне лучшим вариантом. Создание элементов управления с нуля в canvas — это немалый подвиг.

Редактирование 2 (после макета): Для меня это просто выглядит как форма, состоящая из нескольких частей, со скрытыми формами / областями, которые отображаются соответствующим образом. Это слишком распространено, чтобы требовать создания этого с помощью canvas.

Комментарии:

1. Нет, «узлы» моего дерева будут намного сложнее, чем текст и изображения. Дерево — это только один из способов взглянуть на это. Динамический макет сетки с изменяющейся шириной и количеством строк и столбцов также мог бы описать то, что я создаю.

2. @Mr. Grieves — Для определения пригодности может потребоваться макет или дополнительные пояснения.

Ответ №2:

Canvas пока не полностью поддерживается во всех браузерах. Я рекомендую использовать либо Jquery, либо другой фреймворк.