7

私はSpringフレームワークを使用するプロジェクトに参加し、すべての呼び出しはajaxリクエストによって行われ、成功後のリダイレクトはビュー自体で定義され、隠し入力を介してajax JS関数に渡されます(したがって、すべての関数の最後にModelAndViewが返されます)コントローラーでは何の効果もありません)。どういうわけかコードを台無しにしているように感じます。それでも、CRUD を post、get、put、delete にマッピングして安静なアプリを使用する利点を得たいと考えていたので、これが行われたと思いますが、最終的にはコントローラー自体からリダイレクトする機能を失いました。

  • それをすべて保持する他のパターンがあったかどうか知りたいです。
  • また、コントローラーからのリダイレクトを簡単に許可するGETとPOSTのみを使用する以前の方法の長所と短所も知りたいです。
4

3 に答える 3

6

私が一般的に使用して推奨するパターンは次のとおりです。

  • ユーザーがページを読み込む - コントローラーの GET が呼び出され、ビューが読み込まれます
  • ページの読み込み時 - AJAX スクリプトがコントローラーの POST を呼び出して、バックエンドからデータをフェッチします (ユーザーにはローダーが表示されます)。
  • POST リクエストが成功すると、データがレンダリングされます。
  • エラーが返された場合 - バックエンドからの問題についてユーザーにメッセージが表示されます (リダイレクトをより詳細に制御できます)。

このアプローチの利点:

  1. エラー処理の柔軟性の向上
  2. ユーザーは、データ集約型のページでページが読み込まれるのを待つ必要はありません
  3. 完全な Web 2.0 フィールを使用するか、特定の操作に対してより従来のアプローチを使用できるハイブリッド アプローチとして使用できます。
于 2012-11-13T11:40:40.340 に答える
2

アヤックス:

  • +ブラウザの更新時に二重投稿なし
  • +クライアント側の実行
  • +サーバーへのリクエストが少ない
  • -XSS 攻撃に関する追加のセキュリティ チェック/構成

HTML:

  • +すべてのブラウザで動作
  • +javascriptが非アクティブ化されている場合に機能します
  • - 速度の面での使いやすさの欠如

私はSpringにほとんど時間を費やしていないので、すべてを判断することはできません. 春の展開パターンそのものが違和感を覚えるのかもしれません。Java では、OOP で感じるのに慣れています。MVC の一般的な概念は、html AJAX などと混同されます。サーバー/クライアント アーキテクチャがあり、すべてのコンポーネントを区別する必要があることに注意してください。これは、Google Web Toolkit を使用して非常にうまく行うことができるものです。

だから私が読んだのは、あなたがブラウザをリフレッシュするということです。リフレッシュした場合、AJAX の利点はどこにありますか? アプリケーションを知らなくても、Java では簡単に実行できないことを知っていれば (外部コードを適用している場合)、正しいことを行っており、プログラム シーケンスを検討する必要があります。

私が考えることができる AJAX HTML 以外の唯一の異なる方法は、ActiveX コンポーネント、Flash、または html5 Websockets のいずれかで実行できるソケット接続です。しかし、それは通常、単純なフォームに使用するものではありません。

ところで。GET 文字列は最大約 2000 文字であることが知られていますが、POST のようなヘッダーを送信しないため、実行が少し速くなります。

そして、私の意見では、パフォーマンスに関しては、要求を減らして、最初に多くの html を吐き出すほうが、無理やりどこでも ajax を作ろうとするよりも優れています。とにかくSEOの優位性を失ったので.....

于 2012-11-17T19:19:20.030 に答える
0

Web は、長年にわたって多くの成熟を遂げてきました。PUT、DELETE などの従来の HTTP リクエスト タイプは、Web 開発のほとんどの状況で役に立たなかったため、使用は最小限でした。

Web アプリケーション開発アプローチでは、GET & PUT 設計パターンのみを使用することをお勧めします。応答を取得するために 1 つまたは最大 2 つの入力パラメーターを送信する必要がある場合は、GET を使用する必要があります。HTTP リソース、つまり URI への入力用に 2 つ以上のパラメーターを送信する必要がある場合は、POST を使用できます。

于 2012-11-17T10:52:40.143 に答える