Я создаю редактирование карт webapp, где мы можем создавать и редактировать полилинии, полигоны и т.д. У меня есть некоторые проблемы с поиском информации об отмене реализации в Интернете, я нахожу, что нытье о "нам нужно отменить" и "вот мой Command pattern using closures", но я думаю, что между этим и полным интерфейсом undo/redo есть довольно некоторая дорога.
Итак, вот мои вопросы (хороший кандидат на вики, я думаю):
- Должен ли я управлять стеком или есть способ отправить мои команды в стек браузера? (и как я могу обрабатывать собственные команды, например текстовые изменения в текстовых полях)
- как мне обрабатывать "сжатие команд" (группировка команд), когда некоторые команды являются родными браузерами.
- Как определить отмену нажатия (ctrl + z)?
- Если я зарегистрирую событие keyup, как мне решить, препятствует ли я умолчанию по умолчанию или нет?
- Если нет, могу ли я зарегистрировать какой-нибудь обработчик отмены?
- Пользователи не используются для отмены в Интернете, как я могу "обучить" их исследованию/отмене моего приложения?
Спасибо всем.