1

時間の変更が表示されるため、pjax が機能しません。

私のコードに何か問題がありますか。

<html><head>
<script src="jquery.js"></script>
<script src="jquery.cookie.js"></script>
<script src="jquery.pjax.js"></script>
<script type="text/javascript">
$('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";
$headers = getallheaders();
if(($headers['X-PJAX'] == 'true')){
echo "<div id='main'>first change</div>";
}else{
echo "$header<br/>$date<br /><div id='main'>first page</div><br />$footer";
}
?>
</body></html>

ベスト、MJ

4

1 に答える 1

4

編集:主な問題は、Web ページの基本的なデバッグを習得せずに最先端のブラウザー機能を使用しようとしていることです。

PHPでエラーを解決したgetallheaders()ので、これは簡単です。

ステップ 1: http://www.bluereservations.com/pjax.phpをロードし、ブラウザー コンソールを開き、ページを更新して、コンソールでメッセージを確認します。

というエラーが報告されます$ is not defined。これはjquery、正常にロードされなかったことを示しています。

ステップ 2: http://www.bluereservations.com/jquery.jsをロードします。

謎が一つ解けました。

ページの明らかな問題をすべて片付けたら、さらにあいまいな問題を調べます。ネットワーク リソース、http 要求および応答ヘッダーなどの検査を含む pjax の場合。

Firebug for Firefox を使用している場合は、 http: //getfirebug.com/wiki/index.php/Net_Panelで詳細を確認してください。persistpjax の場合、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サポートを得るのにはるかに簡単な方法ですが、偏見があります。

于 2012-04-28T05:10:28.863 に答える