Еще одно «как изменить URL, не покидая веб-страницу» - PullRequest
1 голос
/ 18 января 2012

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

Я заметил, что некоторые веб-сайты могут изменять URL и просматривали сообщения / ответы (например, Как GitHub меняет URL без перезагрузки страницы? и Присоединение хэштега к URL с javascript ), которые ссылаются на эти изменения как на push-состояния, AJAX-скрипты или API-интерфейсы истории (во всех которых я не слишком разбираюсь).

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

У меня вопрос, почему сайты ниже используют / # / в пути для смены URL. Единственная причина, по которой я спрашиваю, заключается в том, что я вижу это все чаще и чаще на тяжелых веб-сайтах jquery.

http://na.square -enix.com / ffxiii-2 /
http://www.airwalk.com

Если бы кто-то мог просто пролить некоторый свет на то, что эти парни используют для этого, было бы очень признательно, поэтому я мог бы создать свой собственный сценарий.

Ответы [ 4 ]

1 голос
/ 18 января 2012

У меня вопрос, почему сайты ниже используют / # / в пути для смены URL

Если мы игнорируем возможность незнания альтернатив, то: Потому что они готовы принять ужасные недостатки в обмен на то, чтобы заставить его работать в Internet Explorer (который не поддерживает историю) API ).

Github использует разумный подход, используя API истории, если он доступен, и резервирование на сервере, если это не так, вместо генерации ссылок, которые прервутся без JavaScript.

0 голосов
/ 18 января 2012

Я сам не пробовал, но прочитал много отзывов / мнений о History.js

Предполагается, что у вас будет опция "# in the path", как вы сказали (длястарые - несовместимые - браузеры) и прямая смена URL-адреса в стиле Facebook.Кроме того, когда вы нажмете кнопку «Назад», вы без проблем попадете на предыдущую страницу, загруженную AJAX.

Я реализовал такую ​​функцию (вкладки AJAX с изменением URL), но если у вас будут другиеjavascript на страницах, которые вы хотите загружать динамически, я бы не рекомендовал использовать страницы, загруженные AJAX, потому что при загрузке содержимого с помощью AJAX JavaScript внутри содержимого не будет выполняться.

Так что япроголосуйте за HistoryJS или за создание собственного модуля.

0 голосов
/ 18 января 2012

Ну, они используют якорь "#", потому что им нужно различать несколько закладок / мест, которые можно просматривать в браузере на сайте, при этом все они должны быть на одной странице. Добавляя события истории браузера жанра /mySamePage.html#page1, /mySamePage.html#page2, когда пользователь делает что-то, что Ajax загружает некоторый контент на текущей html-странице, вы получаете преимущество (ну, очевидно,), оставаясь на текущей страницы, но в то же время пользователь может добавить этот конкретный контент в закладки, а нажатие назад / вперед в его браузере будет различать различный загруженный Ajax контент.

Это не так уж плохо, только проблема с оптимизацией SEO. У Google есть хорошая страница, объясняющая это http://googlewebmastercentral.blogspot.com/2009/10/proposal-for-making-ajax-crawlable.html

0 голосов
/ 18 января 2012

http://probablyinteractive.com/url-hunter

Это хороший пример того, как изменить URL с помощью JavaScript.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...