Опыт работы с Javascript History Framework
Я ищу фреймворк истории javascript для обработки навигации внутри страницы, когда пользователь выбирает несколько параметров, которые изменяют поведение страницы.
На странице есть несколько артефактов, которые изменяют загрузку данных на странице, и я хотел бы сохранить это как набор стеков поведения. В более широком смысле я хотел бы добавить это в качестве инструментария для моих будущих веб-проектов по тем же причинам.
Я в основном пишу в ASP.NET с JQuery, но пока что я действительно беспокоюсь о JQuery. Я пишу другие проекты на PHP, Python и Perl (в зависимости от концерта), поэтому он должен быть независимым от платформы.
Я искал в сети и нашел несколько, но только один (охваченный на OReilly) выглядел так, как будто бы он отвечал всем требованиям. Я начал играть с ним, но я хотел знать, какие наборы инструментов используют другие люди и что другие порекомендуют.
Поэтому, если у вас есть опыт работы с историческими фреймворками, обработкой кнопки "Назад" (и т. Д.) В Ajax, я хотел бы услышать о том, что вы использовали и как это сработало. Это действительно помогло бы мне сделать окончательный выбор по библиотеке.
Спасибо,
S
4 ответа
У меня была похожая проблема некоторое время назад при создании сайта только для flash. Мы попытались:
- Действительно Простая История (у которой были некоторые проблемы в комбинации сафари и вспышки)
- ExtJS, который имеет компонент истории, который отлично сработал для нас. ( Демонстрация) [Кроме того, мы уже использовали эту платформу для других проектов.]
jQuery History - мой предпочтительный выбор. Его можно найти здесь: http://www.balupton.com/projects/jquery-history/ Обеспечить поддержку различных браузеров, привязку к хешам, перегрузку хешей, все остальное.
Существует также расширение Ajax для него, называемое jQuery Ajaxy, позволяющее легко модернизировать вашу веб-страницу до нужного приложения Ajax без необходимости внесения изменений на стороне сервера и оставаться дружественным для SEO и JS-инвалидов: http://www.balupton.com/projects/jquery-ajaxy/
В целом, они хорошо документированы, поддерживаются и многофункциональны. Они также выиграли вопрос о вознаграждении здесь. Как отобразить запросы Ajax в URL?
Может быть, этот вопрос полезен для вас. В вопросе я ссылаюсь на тестовую страницу, где location.hash используется для отслеживания истории. В настоящее время я использую этот метод на тестовой площадке и испытываю проблемы с Opera (усекает значение location.hash в вопросительном знаке, вам придется использовать: location.href.split(/#/)[1]
) и, конечно, IE (нужен iframe). В IE с iframe история сохраняется только для текущего сеанса. Если вы загрузите другую страницу в том же окне или вкладке и нажмете кнопку "Назад", чтобы вернуться на страницу AJAX, предыдущая история будет потеряна. Это не так уж важно для меня, но может быть раздражает. Я понял, что история IE8 должна вести себя так, как ожидалось с location.hash, у нее даже должен быть обработчик hashchange.
Я думаю, что большинство фреймворков используют один и тот же метод (мониторинг location.hash для изменений, используя iframe для IE). Я не хотел использовать фреймворк, потому что я использую свой собственный небольшой фреймворк, а обычные фреймворки содержат слишком много функциональности, которую я никогда не буду использовать.
Dial.js - это фреймворк истории браузера JavaScript, созданный для предоставления некоторых функций полноценного фреймворка MVC с jQuery и History.js для одностраничных приложений (SPA).