Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Полная перезагрузка страницы с POST запросом JQUERY + AJAX (https://javascript.ru/forum/events/33870-polnaya-perezagruzka-stranicy-s-post-zaprosom-jquery-ajax.html)

Dremlin 12.12.2012 09:44

Полная перезагрузка страницы с POST запросом JQUERY + AJAX
 
Доброго времени суток!
Подскажите, как можно в результате ajax запроса полностью перезагрузить текущую страницу средствами JQuery, можно и на чистом JavaScript. Пробую следующий код:
$(document).ready(function(e) {
	
	$('.mtb').click(function() // .mtb - это класс кнопки
	{
		$.ajax(
		{
			url    : "index.php #html",
			type   : 'POST',
			data   : {'js':1},
			async  : false,
			cache  : false,
			success: function(html)
			{
				$('html').html(html);
			},
		});
		return false;
	});
	
});


Смысл затеи:
При включенном JavaScript в браузере по событию сранички с сервера подгружаются ajax технологией, а при выключеном - стандартным post запросом из формы.

Я что-то делаю явно не так, кто сможет поправить и объяснить в чем проблема? Заранее благодарен любой подсказке, где рыть и копать :)

P.S.
Интересно то, что если я делаю выборку от тега body и вставляю в body, то всё работает, а если пытаюсь от html и вставляю в html, то при просмотре через Mozilla FireBug видно, что куска дерева нет (body пропадает)

tropiko 12.12.2012 14:40

Позволю себе интерес: "Но зачем?"
Прироста производительности от этого не произойдет.

Dremlin 12.12.2012 14:54

Цитата:

Сообщение от tropiko (Сообщение 220948)
Позволю себе интерес: "Но зачем?"
Прироста производительности от этого не произойдет.

Тут целью является проверка состояния JavaScript (Вкл/Выкл)
Если JavaScript у пользователя выключен, то серверный скрипт, например php отдаёт один вариант странички, а если включен, то другой.

Dremlin 12.12.2012 14:55

Я никак не пойму как на JQuery или чистом JavaScript страничку полностью заменить. От корня
<html>
до конца
</html>
после того как ajax`ом получил файл

tropiko 12.12.2012 16:08

Цитата:

Сообщение от Dremlin (Сообщение 220952)
Тут целью является проверка состояния JavaScript (Вкл/Выкл)
Если JavaScript у пользователя выключен, то серверный скрипт, например php отдаёт один вариант странички, а если включен, то другой.

Тег noscript никто не отменял :)

Dremlin 12.12.2012 16:12

Цитата:

Сообщение от tropiko (Сообщение 220971)
Тег noscript никто не отменял :)

Согласен, но код такой кривой получается и выглядит так не красиво :D
Весь прикол в том, что мне удаётся получить от сервера ответ и положить его в переменную в которой весь нужный html - код, но как его теперь перед тем как отобразить страницу запихнуть в document ? :)
При попытках что то вставить в DOM дерево он куски кушает) Или ещё какие ошибки возникают, только не то что нужно)

Dremlin 14.12.2012 22:07

Решил я проблемку! Дело было в том, что теги script и link так просто не вставить с помощью jQuery. По крайней мере у меня не получилось. На помощь пришёл нативный JavaScript :)

После ajax запроса, получаем html документ из которого регуляркой удаляем строчки script и link, а затем создаём объекты с нужными нам свойствами и вставляем в head. Остальное встроилось в DOM без проблем. В итоге страница была перезагружена с помощью ajax :lol:

Такие вот дела. :)


Часовой пояс GMT +3, время: 04:23.