Ответ 1
Навигация "Hash-Bang", как ее иногда называют,...
http://example.com/path/to/#!/some-ajax-state
... это временное решение для временной проблемы, которая быстро перестает быть проблемой благодаря современным стандартам браузеров. По всей вероятности, Twitter постепенно прекратит работу, как это уже делает Facebook.
Это сочетание нескольких понятий...
Раньше ссылка служила двум целям: она загружала новый документ и/или прокручивалась до встроенного якоря, как указано хешем (#).
http://example.com/script.php#fourth-paragraph
Все, что в URL-адресе после хэша не было запрошено с сервера, но было найдено на странице браузером. Это все еще отлично работает.
С принятием AJAX новый контент может быть загружен на текущую (уже загруженную) страницу. При этой динамической загрузке возникло несколько проблем: 1) не было уникального URL для закладки или ссылки на этот новый контент, 2) поиск никогда не увидит его.
Некоторые умные люди решили первую проблему, используя хеш как своего рода ссылку на состояние, которая будет включена в ссылки & закладки. После загрузки документа браузер считывает хеш и выполняет запросы AJAX, отображая страницу и ее динамические изменения AJAX.
http://example.com/script.php#some-ajax-state
Это решило проблему AJAX, но проблема поисковой системы все еще существовала. Поисковые системы не загружают страницы и выполняют Javascript как браузер.
Гугл в помощь. Google предложил схему, в которой любой URL с хэш-ударом (#!) Вместо хеша (#) подсказывает поисковому боту, что существует альтернативный URL для индексации, который включает в себя переменную "_escaped_fragment_", среди прочего вещи. Прочитайте об этом здесь: Ajax Crawling: Getting Started.
Сегодня, с принятием Javascript pushstate в большинстве основных браузеров, все это становится устаревшим. С помощью pushstate, поскольку содержимое динамически загружается или изменяется, URL текущей страницы может быть изменен, не вызывая загрузку страницы. При желании это обеспечивает реальный рабочий URL для закладок & история. Затем можно сделать ссылки, как они всегда были, без хэшей & хэш-бахрома.
На сегодняшний день, если вы загрузите Facebook в более старом браузере, вы увидите хэш-удары, но текущий браузер продемонстрирует использование pushstate.