12

私たちはかなり大規模で幅広いアプリケーションに取り組んでいます。Web サイトには、非常に異なるユーザー インターフェイスの要件と動作を備えたさまざまなセクションが多数あります。

将来を見据えて、Rails 4 はアセット パイプラインを別の gem に分離したので、それを含めるかどうかを選択できます。ターボリンクでも同じことが起こるかもしれません。

私は最近自分自身に問いかけ続けていますが、答えが見つからないという質問は、プロジェクトでこれらのライブラリを使用する必要があるかどうかです。

私の考察における主な問題は、オールインワン ファイル戦略はおそらく機能せず、アプリケーションのさまざまな部分でファイル バンドルを使用する必要があるという事実です。すべての js/css が既にロードされていると想定する必要があるため、ターボリンクはこれにどのように反応しますか? このような構成の利点は、パイプラインとターボリンクの両方によって暗示されるコードの複雑さを克服しますか?

はい/いいえの答えは期待していません。問題についてのいくつかの意見です。

4

2 に答える 2

11

どちらも有効なツールであり、必ずしも互いに打ち消し合うわけではありません。

ターボリンク: ページの本文のみを読み込めるようにして、AJAX リクエストとして機能させます (このような動作の例は、Facebook の動作です)。

利点:

  • 新しいページを完全にレンダリングするブラウザ タスクをスキップするため、ブラウザが応答しない「空白ページ」の時間をなくします。
  • 前に関連: 新しいページをロードすることによって影響を受ける可能性のある動作がある場合、たとえば曲を再生する場合、ターボリンクは影響しません (次のサウンドクラウドを参照)。
  • ドキュメント ヘッドをリロードしないため、同じタグ/コンテンツを 2 回 (同じ場合) ロードしません。
  • サーバー側で引き続きビュー コンテンツをキャッシュできます。

短所:

  • ヘッダータグを本当に更新する必要がある場合のドラッグ (新しい js ファイル、新しい css ファイル、メタタグの更新...)
  • クライアント側のビュー レンダリングを使用する場合、それはそのためのツールではありません。
  • 動作を無効にするデフォルトの動作は苦痛です(cssクラスを使用してセクション内のアンカータグを無効にしますか?それはひどいです)。

実際には、アプリのアーキテクチャが何であるか、何をターゲットにするかが問題です。

アセット パイプラインについては、短所よりも利点の方が多いとは言えますが、結果はまちまちです。全体として、前処理ツールはクロスブラウザー開発の生産性を高めますが、本番環境ではそれに依存しないでください。しかし、アセットのパイプライン化の場合は、目的に合わせて行う必要があります。SASS、Coffeescript を前処理できます。コンパスやバーボンなどの優れたライブラリがありますが、これによりパフォーマンスのオーバーヘッドが増加する可能性もあります。したがって、それをベンチマークして、これらがあなたにとってのツールであるべきかどうかを確認してください。

于 2013-01-09T11:08:42.703 に答える
2

欠点についての投稿から始めましょう: http://eviltrout.com/2013/01/06/turbolinks-and-the-prague-effect.html

これが問題にならない場合: http://geekmonkey.org/2012/09/introducing-turbolinks-for-rails-4-0/

まとめ: ページが JavaScript と CSS スタイルを共有している場合、Turbolinks はページの読み込みを大幅に改善します。PJAX は、サーバー側のパフォーマンスが問題になる場合に役立ちます。

  • お役に立てれば :)
于 2013-01-09T10:33:06.053 に答える