В настоящее время я создаю одностраничное приложение AJAX. Это большая «форма регистрации», построенная как многошаговый мастер с несколькими ветвями и разным набором слов в зависимости от того, какой выбор делает пользователь. В конце формы находится редактируемая страница обзора. После того, как пользователь отправляет форму, он отправляет нам довольно большое письмо, а им - небольшое. Это вроде как очень скучно выбирать свою приключенческую книгу.
Распространение функций увеличило размер этого приложения за пределы возможностей текущей архитектуры, и оно слишком медленно работает на любых более медленных компьютерах (что не подходит для веб-приложений), особенно на тех, которые используют Internet Explorer. В настоящее время он имеет 64 отдельных шага, 5400 элементов DOM, а один файл .aspx весит 300 КБ (4206 LOC). Загрузка приложения занимает от 1,5 секунд на быстрой машине с FireFox 3 до 20 секунд на более медленной машине с IE7. Перемещение между шагами занимает примерно одинаковое количество времени.
Итак, давайте резюмируем особенности:
- Многоступенчатая форма в стиле мастера с несколькими путями (64 шага)
- Текущий шаг показан примерно так: http://codylindley.com/CSS/325/css-step-menu
- Несколько проверенных полей
- Изменение словоблудия в зависимости от выбора пользователя
- Окончательная редактируемая страница обзора
Я использую jQuery 1.3.2 и следующие плагины:
- Плагин мастера форм jQuery
- плагин jQuery clueTip
- jQuery sexycombo
- Плагин jQuery meioMask
А также некоторый настраиваемый скрипт для загрузки словоблудия из файла XML, запуска страницы обзора и некоторых эстетических аксессуаров.
У меня это нигде не опубликовано, но я в основном ищу несколько советов о том, как подойти к такого рода проектам и сделать их легкими и расширяемыми. Если у кого-то есть идеи относительно инструментов, руководств или технологий, я ищу это. Я довольно-таки начинающий программист (я в основном занимаюсь CSS / xHTML / дизайном), так что говорите мягко. Мне просто нужен хороший план атаки, чтобы сделать это приложение быстрее. Любые идеи?