Подтвердить что ты не робот

Делать такие ссылки, как Twitter, Hash-Bang #! URL,

Возможный дубликат:
Что такое shebang/hashbang (#!) в Facebook и новые URL-адреса Twitter для?

Мне было интересно, как Twitter работает со своими ссылками.

Если вы посмотрите в исходном коде, вы используете ссылки, как /#!/i/connect или/#!/i/find, но у них нет функции JavaScript, прикрепленной к ним, например load (' connect ') или что-то еще, и что он не требует перезагрузки страницы. Он просто меняет содержимое страницы.

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

Есть ли способ воспроизвести этот эффект? Если да, есть ли учебник о том, как это сделать?

4b9b3361

Ответ 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.

Ответ 2

Вы можете больше узнать о Уникальных URL.

Загружает страницу через AJAX и анализирует "хэш" (значения, которые появляются после "#" ), чтобы определить, какую страницу он загрузит. Кроме того, этот метод используется из-за того, что запросы AJAX не учитываются в истории браузера, поэтому кнопка "back button breaks". Однако браузер сохраняет в истории хэш-изменения.

Используя хэши, а также то, что вы можете использовать хеши для определения страниц, вы можете сказать, что вы можете сохранить AJAX запрошенные страницы "в истории". Кроме того, хэшированные URL-адреса являются только URL-адресами, и они являются закладками, включая хеш, поэтому вы можете также закладок на страницы AJAX.