У меня есть страница с множеством динамически генерируемых флажков. Когда пользователи устанавливают эти флажки, большое количество содержимого на странице изменяется динамически через ajax. Конечные пользователи жалуются, что после нажатия кнопки «Отправить», а затем нажатия кнопки «Назад», чтобы что-то изменить, их выбор сдувается, и им приходится делать это снова и снова.
Я видел несколько сайтов (Gmail, Facebook и т. ..) используйте символ решетки в URL-адресе, чтобы взломать кнопку возврата, чтобы она выполняла вызовы AJAX вместо возврата к предыдущему запросу полной страницы.Я хотел бы сделать это, чтобы изменить URL-адрес перед отправкой страницы, чтобы при нажатии кнопки «Назад» загружались ранее выбранные поля.
Например:
В Gmail, если я просматриваю свой почтовый ящик, мой URL-адрес выглядит следующим образом : https://mail.google.com/mail/?shva=1#inbox
Затем, если я нажимаю «Отправлено», выполняется вызов AJAX, и мой URL-адрес изменяется, чтобы выглядеть следующим образом: https://mail.google.com/mail/?shva=1#sent
Мне очень нравится это поведение, и я хочу повторить его. Как это достигается?
Действительно ли ваши ссылки запускают какой-либо javascript или они просто ссылаются на URL с соответствующей информацией о хэш-символе?
Как вы читаете информацию о хэш-символе в javascript?
Каким образом этот тип навигации влияет на поисковые системы? Узнает ли поисковая система, что два одинаковых URL-адреса, за исключением информации после хэша, на самом деле являются разными URL-адресами, и проиндексировать их как таковые?
Какие еще плюсы и минусы этого метода я должен принять во внимание?
ПРИМЕЧАНИЕ. Я использую C # с веб-формами ASP.NET и ASP.NET MVC 3.0, если это вообще имеет значение.