Всем привет. Интересует как реализовать подгрузку страниц на javascript грамотно и правильно. Все плюсы и минусы? Как это влияет на пс? Как быть с различными браузерами (opera mini к примеру)?
P.S. В java полный ноль
Так java или всё же javascript?
На ps влияет плохо, если не правильно реализовывать. Нужно что бы по ссылке была доступна подгружаемая страница, кроме того это полезно если у пользователя отключён javascript или не поддерживается.
opera mini умеет загружать, по этому проблем особых с ней нет.
В этот блок будет загружено содержимое
<div id="block-id"></div>
Загрузка содержимого url.php
<script type="text/javascript">
$(document).ready(function() {
$.ajax({
url: "url.php",
type: "GET",
cache: true,
success: function(data) {
$("#block-id".html(data);
}
});
});
</script>
Определить в php что происходит ajax запрос:
<?php
if ($_SERVER('HTTP_X_REQUESTED_WITH') == "XMLHttpRequest" {
echo 'Отдать страницу только если произошёл ajax запрос.';
}
echo 'отдать содержимое в любом случае';
?>
Anvar, спасибо за подсказку.
Замутил как то так. Может понадобится кому.
[code]if(history.pushState){
$(window).on('popstate', function(event){
var url = event.location || (event.originalEvent && event.originalEvent.location) || document.location;
LoadUrl(null, url.href, 'get', null);
});
}
$(document).on('click', 'a[href]', function(event){
var url = $(this).attr('href');
LoadUrl(event, url, 'get', null);
});
$(document).on('click', 'input[type="submit"]' ,function(event){
var url = $('form').attr('action');
var method = $('form').attr('method');
var form = 'submit=ok&'+$('input,textarea,select').serialize();
LoadUrl(event, url, method, form);
});
function LoadUrl(event, url, method, form){
if(event != null) {
history.pushState(url, null, url);
event.preventDefault();
}
if(form == null) $('#page').html('<div align="center">LOADING ...</div>');
$.ajax({
url: url,
type: method,
data: form,
success: function(data){
$('#page').html(data);
$(document).scrollTop(0);
}});
}[/code]