Pjax все еще перезагружает страницу

Я пробовал примеры pjax в chrome и firefox, я взял образец кода и поместил его в свое приложение, но он все равно перезагружает полную страницу. Запрос AJAX происходит, тогда страница перемещается без обновления #main div

<html>
    <head>
        <script src="http://cdnjs.cloudflare.com/ajax/libs/jquery/1.8.0/jquery-1.8.0.min.js"></script>
        <script src="http://localhost:8888/jul/js/jquery.pjax.js"></script>


         <script type="text/javascript">
            // $(document).ready(function(){
            //   $('a[data-pjax]').pjax();
            // })

        // $(document).ready(function(){
        //     $('a').pjax({

        //    container: '#main'
        //  })
        $('document').ready(function(){
           $('ul a').pjax('#main')
        });


         </script>
    </head>
    <body>
        11:59:36        <div id="main">
             <div class='loader' style='display:none'><img src='http://localhost:8888/jul/imgs/spinner.gif'></div><ul>

  <li><a data-pjax='#main' href="/jul/stats/pjax_stats/index/">Index</a></li>
  <li><a data-pjax='#main' href="/jul/stats/pjax_stats/total_posts/">total_posts</a></li>

  <li><a data-pjax='#main' href="#" onclick="location.href='http://localhost:8888/jul/stats/pjax_stats/index'; return false;">Index</a></li>
  <li><a data-pjax='#main' href="#" onclick="location.href='http://localhost:8888/jul/stats/pjax_stats/total_posts'; return false;">total_posts</a></li>
  <li><a href="#" onclick="location.href='http://localhost:8888/jul/stats/pjax_stats/total_graph'; return false;">total_graph</a></li>
  <li><a href="#" onclick="location.href='http://localhost:8888/jul/stats/pjax_stats/twitter_graph'; return false;">twitter_graph</a></li>
  <li><a href="#" onclick="location.href='http://localhost:8888/jul/stats/pjax_stats/facebook_graph'; return false;">facebook_graph</a></li>
</ul>index files




        </div>

    </body>
</html>

Я попробовал несколько методов для вызова pjax, и, возможно, кто-то еще мог указать, где я ошибаюсь? Кажется, что Ajax/GET вернется в firebug-консоль - это пример моего php, который производит ответ pjax

public function total_posts(){
        // print_r($_SERVER);

        if (!isset($_SERVER["X_PJAX"])) {
            $this->load->view('stats/pjax_stats/header');
            $this->load->view('stats/pjax_stats/links');
        }else{
            echo "pjax";//add in for debug
        }

        echo "total posts";

        if (!isset($_SERVER['X-PJAX'])) {
            $this->load->view('stats/pjax_stats/footer');
        }



    }

Ошибка?

Кажется, что ошибка в последней версии, где переменная append в конце URL-адреса, где выполняется запрос ajax, - это _pjax = container вместо _pjax = true

Ответы

Ответ 1

Попробовали ли вы установить тайм-аут выше (по умолчанию < 1s)?

Например:

$('document').ready(function(){
  $('ul a').pjax({
    container: '#main',
    timeout: 5000 #ms
  });
});

Ответ 2

Я думал, что добавлю ответ, потому что сегодня у меня проблема, и это был первый результат Google.

Прежде чем переходить к таймауту, убедитесь, что ваш контейнер существует. Это может показаться очевидным, но если вы используете фреймворк, скажем, Yii2 (PHP), вы обнаружите, что ваш идентификатор контейнера больше не существует между обновлениями, поэтому pjax обновляет всю страницу.

Итак, обратите внимание: убедитесь, что ваш контейнер существует до того, как вы настроите таймауты.