Этот подход используется в некоторых мобильных веб-фреймворках, таких как jQuery Mobile, и предназначен для того, чтобы сделать веб-приложение более естественным. Это больше Web 2.0, чем традиционные веб-сайты или веб-приложения, где каждый переход на страницу предполагает поездку на сервер.
Я уверен, что вы уже знаете преимущества, поэтому давайте перейдем к недостаткам.
немного больше Initial Задержка:
Основной недостаток этого подхода заключается в том, что он займет немного больше времени, чтобы загрузить содержимое страницы из-за того, что вы получаете все HTML с сервера в одна поездка. Таким образом, начальное время загрузки может быть связано с большей задержкой, чем в традиционном приложении Web 1.0. Тем не менее, с помощью всего лишь нескольких страниц, по моему опыту, латентность недостаточно значительна, чтобы быть проблемой.
Потеря Кнопка Назад - Больше Сложность в сохранении истории:
Другим потенциальным недостатком является то, что, как разработчик, вы должны подойти к разработке вашего сайта по-разному. Поскольку вы переходите к страницам, скрывая один блок DIV и открывая другой, вы потеряете функциональность на задней панели. Это можно смягчить, используя хеш в URL-адресе для записи истории переходов страниц. Затем вам необходимо зарегистрировать событие, чтобы просмотреть хэш и перезагрузить старый контент, когда пользователь перейдет назад. Вам также необходимо изменить состояние объектов и переменных JavaScript, чтобы отредактировать старое состояние, что может добавить сложность для вашего приложения. Конечно, есть API и библиотеки, которые упрощают реализацию и помогают обеспечить хороший код, поддерживающий код.
Подробнее Stateful Области Предполагает Переосмысление подхода и возможное Learning Curve:
Наконец, вы должны помнить, что объем каждой страницы не сбрасывается после каждого перехода. Хотя на самом деле это может быть преимуществом в том, что ваше приложение более сдержанно, вам нужно укорениться в том, как думать, что каждая загруженная страница приведет к очистке всех переменных и данных JavaScript, которые вы установили.
Резюме:
Мое предложение, если вы собираетесь идти по этому пути, чтобы использовать библиотеку. Не изобретайте велосипед, если у вас нет веских оснований. Библиотеки, такие как jQuery mobile, помогают обеспечить хороший откат для старых браузеров, а некоторые даже убедитесь, что ваш сайт будет загружаться с использованием технологий Web 1.0 для случаев, когда JavaScript отключен.
Что вы будете делать, если пользователь использует NoScript для Firefox? – Blender
Или, вы знаете, NoScript для любого браузера (почему просто firefox, это что-то особенное или что-то такое?). – DanRedux
Гигантские задницы. –