Edit: Основная проблема заключается в том, что вы пытаетесь использовать функцию браузера передовые без Освоив базовую отладку веб-страницы.
Вы решили ошибку с помощью getallheaders()
в php, так что это должно быть легко для вас.
Шаг 1: Загрузить http://www.bluereservations.com/pjax.php, откройте консоль браузера, обновите страницу и проверьте наличие сообщений в консоли.
Сообщается об ошибке $ is not defined
. Это говорит о том, что jquery
не загрузился успешно.
Шаг 2: Загрузка http://www.bluereservations.com/jquery.js
Одна загадка решена.
ПОСЛЕ того, чтобы все очевидные проблемы с страницей были в стороне, затем посмотрите на более неясные вещи. Для pjax, который будет включать проверку сетевых ресурсов, HTTP-запросов и заголовков ответов и т. Д.
Если вы используете Firebug для Firefox, то для получения более подробной информации читайте http://getfirebug.com/wiki/index.php/Net_Panel. Для pjax вам нужно включить опцию persist
в случае сбоя pjax.
Следующая могли бы решить другие проблемы с тест-страниц ...
При ответе на X-PJAX
запроса вы отправляете только основное содержание, а не всю страницу. Для вашего тест-случае что-то вроде
<?php $headers = getallheaders();
if($headers['X-PJAX'] == 'true'): ?>
first change
<?php else: ?>
<html>
<head>
<script src="jquery.js"></script>
<script src="jquery.cookie.js"></script>
<script src="jquery.pjax.js"></script>
<script type="text/javascript">
$(function() { $('a[data-pjax]').pjax(); });
</script>
</head>
<body>
<?php
$header = "this is first part
<br/> <a href='pjax2.php' data-pjax='main'>GO</a>";
$date = date("Y-m-d H:i:s");
$footer = "this is second part";
echo "$header<br/>$date<br /><div id='main'>first page</div><br />$footer";
?>
</body>
</html>
<?php endif; ?>
Jquery-pjax действительно позволяет отправить весь файл в ответ на X-PJAX
запросы. Посмотрите в документах для опции fragment
.
Лично HTMLDecor - это гораздо более простой способ получить бесплатную поддержку pushState
, но я предвзятый.
Я думаю, вам нужно поместить функцию '.pjax()' внутри '$ (document) .ready (function() {});'. – AndrewR
Именно это и связано с Ruby On Rails? –