1

私はちょうど読んでいて、どういうわけかRightJSに興味を持った。私はメインのjavascriptフレームワークとしてjqueryを使用してきましたが、今は何か新しいことを学びたいと思っていました。ただし、RightJSがPJAXを実行できることを知りたいです。PJAXがどのように機能するかを理解している限り、どのフレームワークにも実装できることを認識しています。しかし、誰かがこれを構築する方法について私を案内してくれることを願っています。

助けてくれてありがとう。

4

3 に答える 3

2

ほとんどの場合、PJAX は次のもので構成されます。

  1. 指定されたページのhtmlを取得するためにajaxリクエストを実行します(ページは、完全なhtmlを返すか、変更されるコンテンツだけを返すかを知るためにヘッダーをチェックできます)
  2. 返された HTML をコンテナーに追加します。
  3. pushstate history API を使用して、ブラウザーの場所を更新します。

すべてが正常に低下するようにするには、JavaScript を使用して内部リンクに PJAX リスナーを適用する必要があります。これにより、JS が無効になっているユーザーに対してすべてのリンクが正常に機能します。また、ユーザーのブラウザーが pushstate API などをサポートしていることを確認するために、いくつかの機能チェックを行う必要があります (そうでない場合は、すべてを通常のリンクのままにしておきます)。

どのように物事を達成できるかを見てみたい場合は、私は実際にPJAXのネイティブJSバージョンを自分で実装しました: https://github.com/thybag/PJAX-Standalone/blob/master/pjax-standalone.js

さらに、ここで JQuery PJAX のソースを参照することもできます: https://github.com/defunkt/jquery-pjax/blob/master/jquery.pjax.js

于 2012-03-27T15:35:49.543 に答える
1

@Carl のように、pushState + AJAX ナビゲーションのスタンドアロン実装を実装しました。 HTMLDecorを参照してください。

PJAX の理念は次のとおりです。

  1. ページは、独自のコンテンツ + サイト装飾 (バナー、ナビゲーション、広告、スタイルシートなど) で構成されます。
  2. ユーザーが最初にサイトにアクセスしたときに、完全なページを送信します。
  3. ユーザーがサイトの新しいページに移動すると、完全なページではなく、固有のコンテンツが送信されます。(ただし、PJAX は、完全なページから固有のコンテンツを抽出するように構成できます)。

HTMLDecor の哲学は次のとおりです。

  1. ページは、独自のコンテンツ +<link>サイトの装飾 +HTMLDecor.jsスクリプトで構成されます。
  2. ユーザーが最初にサイトにアクセスしたときに、ページを送信します (主に独自のコンテンツ)。ブラウザーでは、HTMLDecor が を調べ、<link>サイトの装飾を取得してページにマージします。
  3. ユーザーが新しいページに移動すると、そのページは既に独自のコンテンツになっているため、そのまま送信します。HTMLDecor は、ページの固有のコンテンツpushState()を更新し、URL を更新するために呼び出します。

つまり、すべてのサイトの装飾を別のファイルに入れ、HTMLDecor.jsそれをブラウザー内の独自のコンテンツとマージさせます。その後、pushState のサポートは無料で提供されます。何も構成する必要はありません。

HTMLDecor.js圧縮して gzip した場合、わずか 6kB であり、ほとんどの js フレームワークに比べて小さいです。RightJS を通常のページ (独自のコンテンツのみを含める必要があります) から除外して、サイトの装飾ページにのみ配置することができます (すべきです)。

HTMLDecor のデモを見ると、おそらくこれはより理にかなっています。私のブログを見てください。ページ ソースを表示すると、ページ上部の広告、下部のナビゲーション バー、および連絡先ポップアップがページ ソースの一部ではないことがわかります。それらはすべて AJAX で追加されます。

ブログ記事の 1 つに移動すると、pushState + AJAX が使用され (ブラウザーでサポートされている場合)、広告とナビゲーション バーが更新されていないことがわかります。

HTMLDecorについて詳しく紹介している記事もあります。

于 2012-04-05T14:40:42.430 に答える
-4

PJAX is for sissies, that's official :)

Use AJAX + History.js (it has hooks for RightJS)

于 2012-05-27T02:53:09.140 に答える