2014-11-22 4 views
0

Просто попадая в веб-программирование, и когда дело доходит до навигации, я предпочитаю использовать Javascript и AJAX-запросы для изменения содержимого при нажатии на ссылки на меню. Это быстро, без обновления страницы, блестящего. Единственная проблема заключается в том, что URL-адрес веб-сайта всегда остается прежним. Поэтому я не могу, например, связать кого-то с страницей «О себе». Каков стандартный способ решения этой проблемы? В настоящее время я использую только HTML, JavaScript и jQuery.Удобная навигационная система с AJAX?

+0

Реализовать «правильную» страницу структура, которая работает без AJAX в первую очередь, а затем просто помещает AJAX «сверху». Поисковые системы тоже понравятся. И API истории HTML5 помогает изменить URL-адрес, видимый в адресной строке, при этом. – CBroe

ответ

1

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

Изменение хеша - вы можете изменить хэш-часть URL-адреса (http://.../index.html#about-page), не перезагружая страницу. Так, например, при нажатии на «О» ссылке, вы можете установить хэш URL с чем-то похожее на это:

window.location.hash = 'bla-bla'; 

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

if (window.location.hash === 'about-page') { 
    // ... 
} 

Другой метод использует «History API» - в современных браузерах вы можете использовать API под названием «История API», который позволяет изменять историю браузера, в том числе URL. Вы можете использовать метод, называемый pushState на history объекта, например:

window.history.pushState({ event: 'event-id' }, "Event Title", "?event=event-id"); 

Для получения более подробной информации, вы можете увидеть предыдущий ответ я писал в прошлом: How to manage browser "back" and "forward" buttons when creating a javascript widget

+0

Спасибо, я посмотрю. Кажется, API истории более гибкий, потому что вы также можете работать с пользователем, возвращающимся/вперед, но ценой не работая над старыми браузерами? –

0

Действительно зависит от того, какую структуру вы используете. Это всегда была классическая критика JSF, которая имела тот же эффект при использовании запросов Put в рамках своего коммуникационного подхода. Они придумали некоторые изменения в последующих выпусках.

Но есть ли стандартный подход, трудно сказать, однозначно. Я видел стратегию «Положительные запросы». Это меняет URL, но это полная подача, которую вы избегали.

Некоторые библиотеки javascript позволяют изменять URL-адрес самостоятельно. Я не помню, какие из них мы использовали.

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

+0

Библиотека YUI - это то, что я использовал в прошлом, чтобы отредактировать URL-адрес браузера с веб-страницы. Однако прошло некоторое время. Там могут быть лучшие инструменты – EdH

Смежные вопросы