pushState () и popState (): манипулирование историей браузеров

Я работаю над небольшим проектом, в котором я хочу создать сайт в стиле Ajax. Контент загружен с помощью jQueryload(), Как некоторые из вас знают, недостатком этого является то, что URL не изменяется в соответствии с отображаемым контентом. Чтобы сделать эту работу вы можете использоватьpushState(), Поскольку это не поддерживается кросс-браузер, я использовал плагинhistory.js.

Это работает довольно хорошо, но проблема в том, что мои кнопки «назад» и «вперед» не работают должным образом, и я понятия не имею, что я делаю неправильно. URL-адрес меняется правильно, и содержание также, но заголовок не меняется вообще. Под заголовком я подразумеваю то, что отображается как заголовок окна (или вкладки) окна браузера. То есть<title> загруженной страницы ИЛИ атрибут заголовка ссылки, которая ссылается на эту страницу (они одинаковы). Я думаю, что это связано с тем, что я называю только часть страницы, чей заголовок мне нужен (т. Е. Путем добавления#content кload()). Я все еще хочу заголовок этой страницы, хотя. Вот контрольный пример того, что у меня есть до сих пор. (Больше не доступно с 28 декабря 2013 года.) Файл jQuery:

$(document).ready(function () {
    var firstLink = $("ul > li:first-child > a");
    var menuLink = $("ul > li > a");
    var firstLoadedHtml = firstLink.attr("href") + " #content";

    $("#sectionContainer").hide().load(firstLoadedHtml).fadeIn("fast");
    firstLink.addClass("active");   

    menuLink.click(function(e) {
        history.pushState(null, null, this.href);

        e.preventDefault();
        e.stopImmediatePropagation();

        var CurLink = $(this);
        var newLoadedHtml = CurLink.attr("href") + " #content";
        var oldSection = $(".contentPage");

        $("#sectionContainer").hide().load(newLoadedHtml).fadeIn("fast");
        menuLink.removeClass("active");
        CurLink.addClass("active");
    });

    $(window).bind('popstate', function() {
            var returnLocation = history.location || document.location;

            $('#sectionContainer').load(returnLocation + "#content");
    });
});

Я также отметил, что при возврате к базовой странице (то есть / sectionLoaderTest /) она некоторое время очищается и только через некоторое время загружается содержимое первой страницы. Есть ли способ оптимизировать это?

Кроме того, я использую jQuery для добавления активного класса к ссылке, по которой щелкнули. Как я могу убедиться, что это меняется в соответствии с историей? Чтобы правильная ссылка выделялась при переходе пользователя назад?

Итак, три вопроса:

Get the title working when going forward and backward Optimize the load time of the mainpage Fix the active-class when going forward and backward

Вся помощь приветствуется!

NOTE 1: Я хотел бы опираться на history.js и мой собственный скрипт, и поэтому поддерживаю поддержку< HTML5 браузеры. Я бы предпочел это, потому что: 1. Я знаю, что это должно работать, просто что-то идет не так. 2. Было бы сэкономлено время, если бы я мог увидеть одно решение и реализовать его в сценарии, который я уже написал, вместо того, чтобы выяснять совершенно новый сценарий.

NOTE 2: Щедрость будет дана только ему или ей, кто может ответить на все мои вопросы (3)!

Ответы на вопрос(2)

Ваш ответ на вопрос