Мне нужен обходной путь jQuery.history для обновления - PullRequest
1 голос
/ 14 января 2011

Я использую плагин jQuery.history на своей веб-странице, и у меня возникла небольшая проблема. У меня есть следующий макет для моей веб-страницы:

  • www.myDomain.com
  • www.myDomain.com / # home.php
  • www.myDomain.com / # otherPage.php
  • ... более того

Поэтому, когда я захожу на мой сайт по адресу www.myDomain.com, он на самом деле загружает index.php, что вполне логично. Внутри index.php я говорю: include('home.php');. Таким образом, Google может проверить содержимое моей первой страницы. $.history сохраняет ссылку www.myDomain.com в своем плагине. Что все еще в порядке.

  1. Теперь я захожу в свое меню и нажимаю Home . Который направит меня на мою домашнюю страницу. Но, конечно, я уже был там. Проблема в том, что ссылка моей кнопки Home - #home.php, потому что я делаю ajax-запрос с $.history. Таким образом, моя веб-страница исчезает, и появляется тот же контент.

  2. Когда я нахожусь на otherPage и нажимаю ctrl+R, я сначала получаю свою домашнюю страницу, а затем веб-страницу выгружается и приходит otherPage . Что раздражает, потому что Я хотел бы получить otherPage direct.

Итак, мой вопрос: как я могу убедиться, что первая страница (без хеша) загружается напрямую, когда хеша нет? И как я могу убедиться, что homePage не загружен, я иду на другой хэш?

Кажется вполне логичным, что это идет не так, но я не вижу обходного пути, потому что PHP не может получить хэш ссылки. Это только для пользовательского агента. И я думал об установке дополнительной переменной или чего-то еще при переходе на мою страницу, но, тем не менее, это сделало бы href уже не таким, и $.history не распознал бы те же ссылки.

UPDATE

Эта демонстрация фактически показывает, о чем я говорю:

http://balupton.com/sandbox/jquery-ajaxy/demo/

Когда вы находитесь на странице и прокрутите вниз до раздела TABS. Using jQuery Ajaxy в качестве заголовка; Это показывает пустой раздел. И, нажав на вкладки, это заполнит его, конечно. При обновлении страницы она снова начинается с пустой страницы, а затем заполняет ее нужным контентом. Моя вещь: я не хочу пустую стартовую страницу.

Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 25 января 2011

Хорошо, я создал обходной путь ... наконец-то.

На своей главной странице я делаю стандарт include(). И не устанавливайте его на display: none. Но я делаю это в JavaScript позже с: document.write('<style>#content{display:none;}</style>');

Так что теперь, Google найдет нормальную страницу. Когда кто-то загружает страницу. Первая включенная страница просто игнорируется. И поскольку мы инициируем $.history object, страница будет выполнять $('#content').show(); после первого вызова AJAX.

PS. Я хотел бы отметить, что я должен был начать с jquery.address плагин вместо этого. Может быть, когда-нибудь я сделаю рефакторинг.

0 голосов
/ 14 января 2011

Я бы предложил вместо # home.php попытаться сделать его только #home, чтобы он не загружал две страницы одну за другой и загружал только одну страницу.

Ссылка: http://plugins.jquery.com/project/jquery-history-web-2-0-hashchange-history-remote

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