Какую веб-платформу использовать для реализации интерфейса типа diff?[закрыто]
-
28-10-2019 - |
Вопрос
Какую веб-платформу вы бы использовали для реализации интерфейса следующего настольного приложения, которое выполняет параллельное сравнение текста.Точнее, что есть в пользовательском интерфейсе:
- средство просмотра документов с разделителем и выделением
- отложенная загрузка, так как документы могут быть очень большими (10 МБ каждый)
- левая панель навигации с цветными метками и окном прокрутки
- синхронизированная прокрутка
- горячие клавиши для навигации (например, Alt + ArrowDown= следующая разница)
Пожалуйста, по одной структуре на ответ.Расскажите о плюсах и минусах этого подхода.
Примечание: этот вопрос отделен от альтернативы Vaadin для сильно загруженного пользовательского интерфейса , где сообщество пыталось решить мои проблемы с Vaadin, но я не слышал настоящего анализа.
Решение
В вашем случае у вас не так много выбора.Независимо от того, какой фреймворк / язык / компилятор вы выберете, вы будете кодировать много низкоуровневых вещей. Таким образом, вашим предпочтительным оружием будет JavaScript или GWT (выбор зависит от того, что вы предпочитаете / имеете больше опыта).Но в любом случае вы будете много работать с самой DOM, об использовании какой-либо компонентной инфраструктуры не может быть и речи, вы не сможете получить какую-либо производительность из высокоуровневой компонентной структуры.
Итак, я предлагаю использовать JavaScript (с Google Closure для некоторых общих частей) или что-то ещееще то, что компилируется в JS ( GWT , CoffeScript ).
Другие советы
Я думаю, что Wicket может помочь, используя его для повторного использования компонента, используемого для просмотра двух версий ввода.Вам нужно будет написать компонент для каждого описываемого вами элемента и написать достаточно Javascript, чтобы связать вещи:
- Синхронизированная прокрутка
- Поддержка горячих клавиш
Ленивая загрузка может быть обработана поведением Wicket, самая сложная часть - это глобальный обзор с правильной раскраской, для действительно эффективной потребуется хороший сеанс мозгового штурма.
Надеюсь, это поможет ...
Для такого приложения webapp (в том числе с фреймворком) не подходит.Обычно это настольное приложение!