Опыт работы с Javascript History Framework

Я ищу фреймворк истории javascript для обработки навигации внутри страницы, когда пользователь выбирает несколько параметров, которые изменяют поведение страницы.

На странице есть несколько артефактов, которые изменяют загрузку данных на странице, и я хотел бы сохранить это как набор стеков поведения. В более широком смысле я хотел бы добавить это в качестве инструментария для моих будущих веб-проектов по тем же причинам.

Я в основном пишу в ASP.NET с JQuery, но пока что я действительно беспокоюсь о JQuery. Я пишу другие проекты на PHP, Python и Perl (в зависимости от концерта), поэтому он должен быть независимым от платформы.

Я искал в сети и нашел несколько, но только один (охваченный на OReilly) выглядел так, как будто бы он отвечал всем требованиям. Я начал играть с ним, но я хотел знать, какие наборы инструментов используют другие люди и что другие порекомендуют.

Поэтому, если у вас есть опыт работы с историческими фреймворками, обработкой кнопки "Назад" (и т. Д.) В Ajax, я хотел бы услышать о том, что вы использовали и как это сработало. Это действительно помогло бы мне сделать окончательный выбор по библиотеке.

Спасибо,

S

4 ответа

Решение

У меня была похожая проблема некоторое время назад при создании сайта только для flash. Мы попытались:

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).

Другие вопросы по тегам