ホームページ  >  記事  >  ウェブフロントエンド  >  pjax を介して更新せずにページをめくる (新しいバージョンの jquery と互換性あり)_jquery

pjax を介して更新せずにページをめくる (新しいバージョンの jquery と互換性あり)_jquery

WBOY
WBOYオリジナル
2016-05-16 17:01:491352ブラウズ

pushState は履歴を操作できる API です。API の概要と使用方法については、こちらを参照してください: http://www.welefen.com/use-ajax-and-pushstate.html

現在、http://github.com/、http://plus.google.com、http://www.welefen.com などの Web サイトが使用されています。

pjax は ajax PushState をカプセル化したもので、pushState テクノロジを非常に便利に使用できるようにします。

キャッシュとローカル ストレージの両方をサポートしており、次回アクセスするときにローカル データを直接読み取ることができます。再度アクセスする必要はありません。

表示方法はアニメーション技術をサポートしており、システム独自のアニメーション方法を使用したり、アニメーション表示方法をカスタマイズしたりできます。

ここでは pjax についてはあまり紹介しません。シンプルで使いやすく、簡単に部分更新を実現し、リンクによるちらつきに別れを告げることができます。
以前 pjax を見てデモを実装したこともあり、メモも書きましたが、jquery 1.9 では live() メソッドが削除され、新しいバージョンの pjax も on() メソッドを使用するように変更されました。最近のプロジェクトでは、新しい使い方を理解した上で、ここにも新たにメモしておきます。

環境:
jquery 1.10.2 ダウンロード
jquery.pjax.js ダウンロード

使用法:
クラス pjaxlink を使用してすべてのリンクを監視し、pjax を使用して、リンク ページ内の ID ToInsert を持つコンテナーのコンテンツを、このページ内の ID コンテンツを持つコンテナーに更新します。コンテンツの取得に 5 秒以上かかる場合は、次の場所に直接ジャンプします:

コードをコピー コードは次のとおりです。

$(document).pjax('a .pjaxlink' , '#Content', {fragment:'#ToInsert', timeout:5000});

使用例:
元のページはジャンプによってめくられます。pjax を使用して、ページのコンテンツを変更せずにページめくりリンクを監視し、リストのみを更新します (リスト コンテナーがその親ノードであることを確認します)。ページングコンテナ)のコンテンツ。

コードをコピー コードは次のとおりです。

if ($.support.pjax) {
//すべてのページングコンテナを走査します
$('.pagercontainer').each(function(){
//リストコンテナを取得します
$listcontainer=$(this).parent();
//リストコンテナのIDを取得します
var listcontainerid=$listcontainer.attr('id');
//pjaxを使用してすべてのページングリンクを監視し、更新するpjaxを定義します
$( document).pjax(' #' listcontainerid ' .pagercontainer a', '#' listcontainerid, {fragment:'#' listcontainerid, timeout:5000});
});
$(document).on( 'pjax:send', function() {
// pjax がリクエストを送信すると、読み込み中のアニメーションレイヤーを表示します 'pjax:complete', function () {
//pjax 処理が完了したら、ローディングアニメーションレイヤー
//速度が速すぎるため、ローディングレイヤーがちらつきエクスペリエンスに影響を与えるため、ここに500を追加します ミリ秒遅延
setTimeout(function(){$('#loading').hide( )},500);
});
}


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。