pjaxを実行したときにレスポンスが悪いとtimeoutしてしまう。firebugでステータスを確認してみるとAbortedと表示されている。
ソースを見たらタイムアウトまでの時間がデフォルトで650msになっていた。かなり短い。
変更したいときは下記のようにする。
$(“a.js-pjax”).pjax(“#pjax”, {“timeout”: 30000});
直接$.pjaxを実行しているときは下記のようにする。
$.pjax({
timeout: 30000,
url: pjax_url,
container: ‘#pjax’
});
参考
mojoでpjaxを導入してみた with Text::Xslate
http://mizuki-r.hatenablog.com/entry/2012/02/12/150724
また、特殊な例で、
直接$.pjaxを実行していてるときはreturn false;を書いておかないとaタグをクリックしたのが有効になり遷移してしまう。
最初、aタグ内にonClickを使いreturn false;を書いていたが
iPhoneやiPod touchなどのモバイル用Safariでは認識されず遷移してしまった。
素直に下記のように$.pjaxのあとに書くとよい。
$.pjax({
timeout: 30000,
url: pjax_url,
container: ‘#pjax’
});
return false;
pjax参考リンク
pjax こそが pushState + Ajax の本命
http://d.hatena.ne.jp/punitan/20110404/1301895279
pjaxが便利過ぎて鼻血出そうになった(railsのサンプル付き)
http://d.hatena.ne.jp/yuku_t/20110823/1314111340
PHPでpjaxる
http://blog.5v-gnd.net/archives/904
defunkt / jquery-pjax
https://github.com/defunkt/jquery-pjax