TL; DR
Пожалуйста, дайте мне знать ваши мысли - я не хочу знать, насколько хорошие / плохие iframes, я просто хочу знать, что соответствует моим требованиям и есть ли лучшая альтернатива iframes .. для моего сценария.
AJAX решает ваши проблемы связи между клиентом и сервером. Существует множество библиотек на стороне клиента, которые делают ajax очень простым. Например, Backbone интегрируется с сервисом RESTful прямо из коробки.
Альтернативами AJAX являются COMET и WebSockets.
Тщательное рассуждение
1. Страница становится легкой и быстрой, потому что, пока пользователь работает на вкладке 1, другие вкладки будут загружать свой iframe.
- Iframes блокирует загрузку главной страницы
Если вы хотите использовать обработчики onload, вам все равно придется ждать загрузки всех iframe.
Точно такие же понятия применяются к загрузке HTML по порядку. Я не думаю, что загрузка HTML является заметным узким местом. Я не могу представить, чтобы получить заметное увеличение скорости от использования фреймов.
Однако вы можете получить заметное увеличение скорости от использования разумного HTML и отложенной загрузки / пагинации.
2.Функционально, каждая вкладка должна иметь свой собственный Добавить / Редактировать и независимый список. Например, если я добавляю адреса, будет обновляться только мой адрес iframe, а остальные вкладки / страницы не должны отправлять и перезагружать данные.
Каждая вкладка должна иметь свою собственную форму, которую вы можете отправить обратно. Если у пользователя есть JavaScript, то вы используете ajax.
3. Для создания универсальной функции сохранения / отмены потребуется кэширование в памяти v.complex иерархии объектов, если все находится на одной странице (просмотр). Я могу использовать пользовательские элементы управления (то есть .ascx), но все равно обрабатывать все в одном действии похоже на огромный и сложный.
Нет. Используйте позвоночник / позвоночник. Реализуйте клиентский MVC, и он очень прост и хорошо структурирован.
4. Мне не нужно беспокоиться о SEO, закладках или динамических размерах. Вместо этого я получаю SOC (Разделение проблем), все распределяется v.well, и главное, что это становится чрезвычайно быстрым, поскольку постбэки разделены.
Вы все еще отправляете сообщения, а не используете ajax, который визуально медленнее. Используйте правильные HTML5-технические статьи, включая MVC на стороне клиента, и он будет распространяться очень быстро и очень быстро.
Недостатки:
- Межфреймовая связь - это правильная боль.
Это замедляет вас и вызывает боль. Весь ваш контент в iframes тесно связан, потому что все они связаны с одним клиентом.
Как вы собираетесь справиться со сменой клиента на главной вкладке? Собираетесь ли вы перезагрузить остальные 3 фрейма, чтобы заново заполнить его правильными данными?
Это очень дорого и медленно
Контексты, в которых этот элемент может использоваться: где ожидается встроенный контент.
Ваши вкладки не являются встроенным контентом. Там просто нормальные формы HTML и они должны быть.
- Отсутствие повторного использования кода в iframe, поскольку каждый из них имеет свой собственный пул кода.
Вы также не можете повторно использовать элементы и глобальные данные, поскольку каждый iframe помещен в песочницу. Это означает, что будет трудно расширить пятую вкладку, так как вам нужно разработать совершенно новую вкладку, а не подключаться к существующим функциям.
Я считаю, что вашей главной проблемой является не понимание того, что существует множество инструментов для написания высококачественных приложений на javascript, чтобы решить вашу проблему за вас.
Используйте позвоночник или позвоночник или knockoutjs . Вы также можете рассмотреть шаблонизатор по вашему выбору (я бы порекомендовал EJS или Jade)