Обновление: этот ответ был заменен этой статьей .В нем обсуждаются проблемы с Hashbang (#!), Хэшами (#) и API истории HTML5 (pushState, popState) и решениями.
Что касается удобства использования на вашем веб-сайте, он не 'Это не имеет значения, и вы можете использовать все, что вам нравится.
Что касается поисковой оптимизации, то и то, и другое и то и другое предоставляют разные возможности для отказа.
Например, Facebook использует!в соответствии с предложением Google по обеспечению возможности сканирования Ajax-приложений .Добавляем!скажет Google, что он должен прослушать этот ajax-запрос и добавить этот URL в результаты поиска.Это отлично подходит для веб-сайтов, которые уже внедрили ajax, так как все, что вам нужно сделать, это добавить!.
Недостатком этого является то, что это только решает проблему обеспечения возможности сканирования ajax.Это не решает проблемы:
- Поддержание чистоты и согласованности URL-адресов для пользователей Ajax и Non-Ajax.Например.Вы можете получить www.facebook.com/profile.php?pid=123#!profile.php?pid=123
- Обеспечение доступности веб-сайта пользователям, не являющимся пользователями Ajax.
- СохранениеURL-адреса одинаковы для пользователей Ajax и Non-Ajax.
- Требуются некоторые очень сложные изменения на стороне сервера для экранирования и преобразования состояний в отношении строк запроса.
- Он не совместим с новой функциональностью HTML5 PopState , которая разработаначтобы по-настоящему решить эти проблемы.
Для веб-сайтов, которые в настоящее время не используют ajax для всего, из-за вышеуказанных проблем гораздо лучше НЕ использовать Google Proposal, поскольку это обходной путь только для сайтов, таких как Facebookкоторый сошел с ума и нуждался в отчаянном решении SEO.Существуют альтернативы, которые решают больше этих проблем (и с помощью доступного сейчас HTML5 PopState может решить все проблемы).Одной из таких альтернатив является jQuery Ajaxy (как видно на balupton.com ), которая работает путем простого обновления вашего веб-сайта до приложения ajax, сохраняя при этом опыт расширенного и интерактивного Ajax-Enabledи продолжает отлично работать для пользователей с отключенным Ajax.