#c# #asp.net
#c# #asp.net
Вопрос:
Я использую dotnet c # и jQuery plus webservices для вызовов ajax. Мои страницы работают так же, как страницы Twitter и Facebook. В событии onload вызов ajax заполняет область содержимого 10 строками, а событие click или roll the page down вызывает тот же вызов ajax с параметром page, который выводит еще 10 строк, и так далее. У меня нет канонической разбивки на страницы для пользователей, не являющихся пользователями javascript. Я прочитал спецификацию Google о обходном ajax, но я не уверен, как преобразовать мою модель в новую модель Google.
Прежде всего, я использую jQuery ajax post, используя формат json. Таким образом, можно создать страницу aspx, которая читает URL, подобный http://www.domain.com/search.aspx?_escaped_fragment_=somevalue
, и использовать значение _escaped_fragment_ для возврата содержимого. Но каким-то образом я должен распространить ссылку на эту страницу на поисковик Google http://www.domain.com/search.aspx#!somevalue
. Это нормально?
Хорошо! Но когда поисковый робот Google обращается к моим страницам, поисковый робот не увидит никакой ссылки наhttp://www.domain.com/search.aspx #!1, если я не укажу это в карте сайта, и для меня это не имеет смысла. Я в большом беспорядке. Может кто-нибудь дать мне совет?
Ответ №1:
Мое понимание схемы здесь:http://code.google.com/web/ajaxcrawling/docs/getting-started.html
заключается в том, что Google изменит ваш существующий «симпатичный» URL (напримерhttp://www.domain.com/search.aspx?page=2 ) до уродливой версии (включая #!). Он делает это с помощью обычных механизмов — находит эту ссылку где-нибудь на вашей странице (например, ссылку href на «страницу 2»).
Затем он отправляет его, ваш сайт должен это понимать и отображать снимок.
Поэтому карта сайта не нужна, если у вас нет ссылки на страницу 2 (которая ссылается на страницу 3 и т.д.)
Ответ №2:
Давайте попробуем:
Рассмотрим ссылку на страницу, например www.domain.com/search.aspx?query=google#1
.
Страница search.aspx должна иметь функцию, которая считывает хэш и получает содержимое относительно страницы 1. Часть этого содержимого www.domain.com/search.aspx?query=google#2
. Функция делает то же самое, но теперь она получает содержимое относительно страницы 2. И так далее.
Теперь я должен заменить # 1 и # 2 на #!1 и #! 2. Моя логика та же, но Google Crawler вызовет www.domain.com/search.aspx?query=googleamp;_escaped_fragment_=1
, и мне нужно будет создать URL-маршрут, который перенаправит этот URL на какую-либо страницу, которая вернет снимок html для результата.
Это верно?