2016-07-29 5 views
0

これからは、非AjaxとAjaxのアクションで同じURLを使用することが悪いという意見が聞こえます。Ajaxのアクションは本当に別のURLを持つべきですか?

私のアプリでは、ユーザーエクスペリエンス向上のためにAjaxで送信されるフォームを用意しています。 JavaScriptを無効にする人のために、私のフォームも機能します。私のリンクのいくつかで同じことが起こります。私は両方とも同じURLを使用していましたが、Ajaxコールであるかどうかに応じて、適切なコンテンツとContent-Typeを使用するだけでした。これはGoogle Chromeの問題を引き起こしました:Laravel 5 and weird bug: curly braces on back

私の質問は今、Ajaxと非Ajaxのアクションで同じURLを使用することは本当に悪い考えですか?これらのアクションごとに2つのURLを作成するのは苦労します。または、キャッシュを管理するための良い回避策がありますか?理論的には、1つのヘッダーは動作を完全に変更することができるので、私はなぜアプリケーションの追加レイヤーを作成し、別のURLを持つように強制する必要があるのか​​分かりません。

ご意見をお寄せください。

答えて

1

HTTPは柔軟で、のデザインのリソースを自由に使用できます。あなたはデザインのAPIとデザインは個人的な好みになります。しかし、この場合、異なるタイプの要求に応答するリソースを1つ持つことは、まったく問題ありません。これは、Content-typeのようなHTTPヘッダーが存在する理由です。

キャッシングにはHTTP Etagヘッダーを使用できます。これは、クライアントにのキャッシュされたリソースを使用する前に、を検証させるキャッシュヘッダーです。

ETagまたはエンティティタグは、World Wide WebのプロトコルであるHTTPの一部です。 HTTPがWebキャッシュの検証に提供するいくつかのメカニズムの1つで、クライアントが条件付き要求を行うことを可能にします。コンテンツが変更されていない場合、Webサーバーは完全な応答を送信する必要はないため、キャッシュの効率化と帯域幅の節約が可能です。

+0

HTTPは柔軟性があります。しかし、残念なことに、このような偉大さのいくつかは、この場合のようにブラウザによって酷く骨抜きにされています。 –

+0

@RoboRobokはい、ChromeがリソースとHTTPリダイレクトをキャッシュする方法は本当に魅力的です。 – undefined

関連する問題