2009-12-04 13 views
10

最近、私たちはサーバーからWebコンテンツを取得する方法を選択できるようになりました。古いスタイルのHTTPリクエスト(独自のURLブラウザで)、AJAX呼び出しを行い、DOMの一部をその場で置き換えることができます。コンテンツを取得する:AJAXと "通常の" HTTPコールの比較

私の質問は次のとおりです。どのオプションを使用するかを決めるにはどうすればよいですか?

更新されたコンテンツを表示したい場合は、「古い日」ではページ全体(変更されなかった部分も含む)を再描画する必要があります。 AJAXが成熟したので、私たちはもうそれをする必要はありません。 「ページ」を一度レンダリングし、必要に応じて変更部分を更新することができます。しかし、そうすることの結果はどうなりますか? AJAXを使用してページ全体をリロードして部分ページをリロードするのは良い経験則ですか?

答えて

12

個人が個々のページをブックマークできるようにするには、HTTPリクエストを使用します。

コンテキストを変更する場合は、HTTP要求を使用します。

メンテナンス性を向上させるために、異なるページ間で機能を分割する場合は、HTTPリクエストを使用してください。

ページビューを最大限にするには、HTTPリクエストを使用します。

まだHTTPリクエストを使用する理由がたくさんあります - スタックオーバーフローはAJAXリクエストとHTTPリクエストの間の分割の素晴らしい例です。各機能がHTTPまたはAJAXである理由を理解してください。それぞれを使用する際にはさらに多くの理由があると確信しています。

+3

私はこの議論に非常に興味があります。しかし、私が理解していない1つの点があります。「コンテキストを変える」とはどういう意味ですか? – balteo

+0

この場合のコンテキストの変更は、次のようなものになります。 私の当座預金口座情報を確認しています 今私はモーゲージ率を見るためにコンテキストを変更しています。 銀行のサイトを離れたわけではありませんが、私の仕事は変わりました。私はコンテキストを変更しました。 – MikeEL

5

私の単純なルール:

が、これはコンテンツのアプリケーションだけではなく、ページである場合は特に、AJAX全力を尽くします。 人がブログのように直接のコンテンツにリンクしたいと思わない限り、その後、通常のフルページを簡単に実行できます。

もちろん、多くのブレンドされた組み合わせがありますが、完全に1つにする必要はありません。

3

AJAXを使用して部分的にページをリロードするとかなりの量の開発オーバーヘッドが発生します。返されるすべてのデータに対して、別のJavaScriptハンドラを作成する必要があります。完全なHTMLブロックを返す場合は、コンテンツをどこに置くべきか、それが他のコンテンツを置き換えるかどうかを指定する必要があります。コンテンツの変更を反映するためにヘッダータグを再レンダリングする必要があり、検索エンジンが各ページのインデックスを作成できるように履歴ソリューションを実装する必要があります(たとえば、SWFAddress jQueryプラグインを使用)。 JSONエンコードされたデータを返す場合は、追加の処理ステップがあります。

ページのリフレッシュを使用しないことによる帯域幅の削減のトレードオフは、ページのレンダリング速度と視覚効果に影響するJSコードとイベントバインディングの増加によって相殺されます。

本当にあなたのターゲットオーディエンスとあなたのページに出ようとしている全体的な気持ちにかかっています。 AJAXとプリローダーは派手で、人々はが好きです。は派手なものです。部分的なページの読み込みを追加することでエンドユーザーエクスペリエンスが向上すると思われる場合は、必ず実装してください。

関連する問題