Вход

Просмотр полной версии : HTML5 History


alexandr_v-vich
21.02.2012, 23:10
Кто-нибудь! Пожалуйста! Я умираю, неделю туплю - ответов найти негде!
Проясните, пожалуйста ситуацию с history API в HTML5.
Как я понимаю на сегодня, есть 2 основных момента:
1) history.pushState
2) XMLHttpRequest

Правильно ли я понимаю...
pushState - для изменения адресной строки (если узко, не принимая во внимания popstate)
XMLHttpRequest - для изменения контента....или как?

Простой пример:
2 страницы с 2мя разными картинками и 2мя разными текстами. В итоге необходимо:
1. Изменение адресной строки без загрузки новой страницы
2.1. Изменение картинки (картинка вставляется с новой страницы) (как понимаю здесь нужен responseText)
2.2. НЕизменение текста. Т.е. текст с прошлой страницы должен остаться тотже.

<script type="text/javascript">


window.onload = function() {
var l = document.getElementById('linken');
l.addEventListener("click", function(event) {
history.pushState(null, null, l.href);
event.preventDefault();
}, true);
};

</script>



<a href="htm.htm" id="linken">Next</a>
<img src="imgone.jpg" id="imgs" />
<p id="textone">FirstText</p>




Всё перелопатил, ночами не сплю, выручите пжл, я не знаю что думать...pushState мне меняет строку, но только! если такая страница действительно существует и при этом в исходном коде (в браузере) пишет новую страницу, хоть и отображает старую....
изменить картинку ч.з. responeText у меня не выходило....я, правда не понимаю толком зачем вообще нужен здесь XMLHttpRequest.....???

da_ff
22.02.2012, 16:22
У вас некторые пробелы в знаниях. Добавленные средства только позволяют создавать новый след в истории переходов без самого перехода и ловить события. Сделано это как я понимаю, по причине того, что хэш страницы который популярно использовать для хранения состояния не отправляется на сервер.
Что делать в зависимости от значения адреса решать вам.

alexandr_v-vich
23.02.2012, 11:45
Ну пробелы это слишком мягко, потому, вообщем, и обратился за помощью....Просто в теории всё понятно, логично и просто, на практике ничего не выходит...

Ну вопросы вообщем ещё актуальны...

devote
23.02.2012, 15:20
http://javascript.ru/forum/project/21077-history-rassshirenie-dlya-brauzerov-ne-podderzhivayushhikh-pushstate-replacestate.html

alexandr_v-vich
23.02.2012, 23:06
=)
Мне бы для "поддерживающих" сначала разобраться)
Да и видел я это...в виду имею..

Magneto
23.02.2012, 23:34
Управление историей для пользы и развлечения (http://htmlbook.ru/html5/history)

alexandr_v-vich
24.02.2012, 00:29
Бился 4 дня над этим примером. С него, собственно, и начал...

В итоге полностью перекопировал страницы, фото, скрипт себе и.... - обычные переходы по ссылкам-ничего не работает...(

alexandr_v-vich
26.02.2012, 20:05
Решён вопрос))
Видимо для программистов эти вещи слишком очевидны, просто XMLHttpRequest без сервера не работает, т.е. адрес типа file:// не канает......
щас заработало, появились, правда, другие проблемы, но уже нормальные)