Я пытаюсь понять, как использовать это pushstate и popstate для моих приложений ajax. Я знаю, что есть некоторые плагины, но сейчас я пытаюсь научиться использовать их в необработанном виде. Я также знаю, что в чистом виде он не поддерживается IE. Помимо всего прочего, мне нужна помощь в понимании того, как его использовать.
часть pushstate довольно проста. Прямо сейчас у меня есть:
function loadForm(var1,var2){
string = "xyz="+var1+"&abc="+var2;
history.pushState("", "page 1", string);
}
Это меняет мой URL-адрес и добавляет его в мой стек URL-адресов. У меня есть еще одна функция, которая выглядит следующим образом:
function loadForm2(var1,var2, var3){
string = "xyz="+var1+"&abc="+var2+"&123="+var3;
history.pushState("", "page 2", string);
}
Вторая функция также меняет URL-адрес при вызове. Теперь, когда у меня есть эта часть, я пытаюсь понять, как использовать popstate. Прямо сейчас у меня это так
window.popState = ajax;
function ajax(){
jQuery.ajax({
type: "get",
url: "../html_form.php",
data: string,
dataType: "html",
success: function(html){
jQuery('#Right_Content').hide().html(html).fadeIn('slow');
validate();
toolTip();
}
})
}
Итак, если вы можете отобразить мою страницу с двумя ссылками, одна вызывает функцию loadForm, а другая ссылка вызывает функцию loadForm2. Когда я нажимаю каждую из ссылок, формы загружаются через ajax, и URL-адрес изменяется, как и должен. Когда я нажимаю кнопку «Назад», URL-адрес откатывается к URL-адресу предыдущей страницы, НО содержимое страницы снова загружает текущую форму вместо предыдущей. Когда я нажимаю кнопку «Назад», он выполняет вызов ajax (firebug), как если бы он пытался загрузить предыдущую форму, но вместо запуска предыдущего вызова ajax он запускает текущий вызов ajax. Таким образом, мой URL-адрес возвращается к предыдущему URL-адресу, но загруженная форма или вызываемый вызов ajax совпадают с последней загрузкой страницы (а не с предыдущей загрузкой страницы).
Я не уверен, что делаю неправильно, и любая помощь будет принята с благодарностью.