Помимо проблем с доступностью, которые действительно серьезны, самая большая проблема с одностраничными приложениями AJAX (веб-приложения, которые работают в основном или полностью на одной странице, например GMail ) заключается в том, что стандартные инструменты навигации, предоставляемые веб-браузерами — закладки / избранное и кнопки Назад / Вперед — становятся абсолютно бесполезными.
Теперь от той же умной обезьяны, которая разрабатывает систему хранения данных AMASS на стороне клиента, о которой я упоминал ранее , получилось очень многообещающее частичное решение этих проблем.
Действительно простая история — это скрипт, который позволяет связать имена page.html# state
страницы с состояниями приложения (например, page.html# state
). Сценарий работает, связывая пользователя с новым якорем каждый раз, когда приложение переходит в новое состояние (например, редактирование записи в блоге). Затем сценарий просматривает текущий URL-адрес на предмет изменений текущего якоря (из-за навигации назад / вперед) и запускает указанную вами функцию, чтобы вы могли соответствующим образом обновить состояние приложения.
Очевидно, что это не так просто, как я представляю, но при наличии библиотеки код, который нужно написать для поддержки этого, на самом деле удивительно прост. На данный момент Safari не поддерживается, но, глядя на то, как он работает, я не удивлюсь, увидев, что браузер будет поддерживаться в ближайшее время.
На сайте скрипта показан весь пример кода, который вам понадобится для начала работы, если вы пользуетесь JavaScript. Менее опытные разработчики захотят проверить статью автора сценария в сети O’Reilly .
Надеемся, что крупные AJAX-приложения, такие как GMail, проложат путь, быстро добавив это в свои предложения. Теперь, когда правильные закладки и навигация теперь возможны в одностраничных приложениях AJAX, я бы не стал так сильно возражать против идеи разработки моего следующего веб-приложения.