[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Переходы по страницам без перезагрузки
wollk
Подскажите пожалуйста, как сделать переходы по страницам сайта без перезагрузки страниц. В интернете находил статьи, но все они делают переход так сказать, но в историю браузера ни чего не записывается, то есть, если нажать "Назад", то вернётесь на хз какую страницу. Может у кого-то ссылочка на статью есть ? Или готовый пример.



Спустя 5 минут, 19 секунд (16.11.2011 - 18:17) inpost написал(а):
Ну это и есть Ajax. smile.gif И да, такая беда.
Но вот что JS предлагает:
window.history.pushState(data, title [, url]): Добавляет элемент истории.
То есть ты перешел на другой раздел, отобразил это в # (своего рода глобальные GET, только для js), и добавил страницу в историю. Сам это не пробовал, но по логике должно работать.

Спустя 3 минуты (16.11.2011 - 18:20) Nikitian написал(а):

Спустя 10 минут, 13 секунд (16.11.2011 - 18:30) wollk написал(а):
Всем, спс, не получится - отпишуся ))

Спустя 1 час, 46 минут, 27 секунд (16.11.2011 - 20:17) wollk написал(а):
А что лучше использовать,
 load(href);

или

<script>  
function getXmlHttp(){
var xmlhttp;
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}

if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}


var xmlhttp = getXmlHttp()
xmlhttp.open('GET', '/test.php', true);
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4) {
if(xmlhttp.status == 200) {
function time(){
return parseInt(new Date().getTime()/1000);
}
$("#contentBody").html(xmlhttp.responseText);
var href = $(this).attr("href");
window.history.pushState(time(), "Тест", "/test.php");
}
}
}
;
xmlhttp.send(null);
</
script>

Спустя 8 минут, 28 секунд (16.11.2011 - 20:25) wollk написал(а):
И у меня JQuery подключён, так может ещё лучше ajax()

Спустя 12 минут, 43 секунды (16.11.2011 - 20:38) inpost написал(а):
wollk
Если jQuery подключен, то делай на нем, конечно же.

Спустя 3 часа, 6 минут, 38 секунд (16.11.2011 - 23:45) wollk написал(а):
В историю записывается, но когда жму назад, меняется только адрес, а контент на месте((

Спустя 25 минут, 57 секунд (17.11.2011 - 00:11) inpost написал(а):
wollk
А ты поставь условие на onload -> запускать ajax и подгружать страницу по данным из #
site.ru/index.php?page=index#contacts -> contacts - контакты.

Спустя 20 минут, 7 секунд (17.11.2011 - 00:31) wollk написал(а):
А нельзя по другому ? чтобы адрес менялся на нормальный. В данном случае при обновлении страницы будет стартовая показываться, а не текущая

Спустя 1 час, 21 минута, 55 секунд (17.11.2011 - 01:53) Так, мимо проходил... написал(а):
"Аякс" сильно обширная тема, чтобы в трех словах рассказать, как одновременно и браузерную навигацию отслеживать, и от F5 защититься, и от всех сопутствующих глюков избавиться. Но если приложите достаточно усилий, то можете даже сделать ajax-приложение индексируемым. Соберите все задачи в один список, от и до, и решайте их с учетом того, что если хоть одна задача выпадает из списка, то есть нет ее решения - значит вы идете не по правильному пути.

Спустя 9 часов, 26 минут, 3 секунды (17.11.2011 - 11:19) inpost написал(а):
wollk
Если Аякс так работает, значит так - НОРМАЛЬНО?! А то, что ты себе выдумал в голове - это лишь твои фантазии.

Спустя 1 час, 25 минут, 32 секунды (17.11.2011 - 12:44) wollk написал(а):
Что-то вы совсем ушли в абстракцию))) я всего лишь хотел чтобы при нажатии назад, возвращался на нужную страничку. В общем ладно !

Спустя 5 минут, 20 секунд (17.11.2011 - 12:50) sharki написал(а):
wollk
Ну вешаешь событие на изменение "истории" получаешь значение из стека, и вызываешь свою функцию для получения страницы

Спустя 2 минуты, 15 секунд (17.11.2011 - 12:52) wollk написал(а):
А есть ссылочка на статью ? Пожалуйста wink.gif

Спустя 12 минут, 23 секунды (17.11.2011 - 13:04) sharki написал(а):
Вот например.
http://onjava.com/onjava/2005/10/26/ajax-h...ack-button.html

А так вешаешь глобальное событие "клик" (если ты не можешь контролировать свои данные), т.е куда не тыкни выполнится какая то функция (твоя) которая проверяет юрл, при условии если есть действующая ссылка на данный момент, чтобы можно было сравнивать их, если различны (и еще несколько правил придумываешь) то перейти по новой ссылке (загрузить документ) или нет.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.