Хештеги (идентификаторы фрагментов) VS API Javascript History - PullRequest
6 голосов
/ 23 февраля 2012

Какой из них лучше? Использование идентификаторов фрагментов ...

http://www.alinkthatdoesnotwork.com/#!/dir1/dir2/file.html

... или новый API истории Javascript?

https://github.com/examplethatdoesnotwork/project/src/script.js

Или я должен использовать оба? (через запасной вариант)

аспекты:

  • Совместимость / поддержка
  • Скорость
  • Удобство

Ответы [ 5 ]

2 голосов
/ 23 февраля 2012

Хештеги - это средство для классификации контента в Твиттере, вы имеете в виду идентификаторы фрагментов.

Использование идентификаторов фрагментов для указания того, какой контент загружать через Ajax, - ужасная идея. Это хак, который хрупок, поисковик недружелюбен (за исключением нескольких хаков с обеих сторон) и зависит от JavaScript .

API истории - это надежная система, которая действительно предназначена для этой работы. Единственная проблема с ним - поддержка браузера , но (в отличие от подхода с использованием идентификатора фрагмента) он постепенно ухудшается до реальных URI, которые будут передаваться непосредственно на ваш сервер (то есть то, что Github делает ) .

Даже Twitter, похоже, собирается переключиться на API истории .

1 голос
/ 23 февраля 2012

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

Однако, как я уверен, вы знаете, поддержка нового API все еще ограничена. location.hash гораздо более широко поддерживается на этом этапе, а это означает, что вам придется написать запасной вариант хэша для браузеров, которые не могут использовать преимущества более новой вещи window.history.

1 голос
/ 23 февраля 2012

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

Вы можете использовать библиотеку, такую ​​как History.js , чтобы включить еев этих браузерах.

Более подробная информация здесь: Это о хэш-бангах , Побочные эффекты URL-адресов хэш-банга .

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

0 голосов
/ 23 февраля 2012

Вы указали «совместимость» в качестве первого критерия. Поскольку исторический API еще не поддерживается всеми крупными поставщиками (я смотрю на вас, Microsoft), даже в их последних выпусках (в IE9 его нет), в значительной степени означает, что вы должны использовать хэш. (Что очень плохо, но мы здесь.) И это не просто Microsoft, многие мобильные устройства используют одну или две версии на своем мобильном браузере, и поэтому до сих пор не имеют ее.

0 голосов
/ 23 февраля 2012

Я думаю, что вопрос в том, что такое поддержка. В настоящее время вы не можете использовать только API истории, потому что он не поддерживается IE. Вам понадобится запасное решение, как в GitHub.

...