1

最近、ajaxを使い始めました。その前は、主にフォーム送信を使用してデータをサーバーに送信していました。しかし、ajax を使用すると、ほとんどの場合、フォームの送信を回避できるように感じます。あるページから別のページに移動する必要がある場合でも (たとえば、テーブル内の顧客リンクをクリックして特定の顧客の詳細を確認したい場合は、サーバーに ajax 呼び出しを行い、html 応答を取得して追加することができます)。以前は少し遅いフォーム送信によって処理された現在のページにあります)。

だから私はフォーム送信がajaxより優先されるべきものを知りたいですか?

4

3 に答える 3

2

これは実際には非常に幅広い質問であり、もう少し深く答えようとします。

必要に応じて、Ajax の代わりに通常の HTTP POST を使用する理由がいくつかあります。

  1. HTTP POST は、World Wide Web Consortium (W3C)によって指定された HTTP 1.1 標準の一部であるため、 HTTP 1.1 準拠のブラウザー で動作します。

  2. Ajax には JavaScript のサポートが必要です。ユーザーのブラウザーが JavaScript をサポートしている場合でも、ブラウザーごとに異なるエンジンを使用して JavaScript を実行しているため、ブラウザー固有のエラーが発生する可能性があります。

  3. Ajax では、まったく異なるレベルのエラー処理が必要です。

    説明させてください:ユーザーがサーバーに POST リクエストを送信し、何らかのエラーが発生した場合 (接続が失われた場合など)、ユーザーはブラウザーで完全に目に見えるエラーを受け取ります。これは、ブラウザー自体がユーザーに問題が発生したことを通知するためです。Ajax を使用する場合、このエラー処理のすべてを自分で記述/実装する必要があります。

    例:ユーザー A がブログにアクセスし、ブログに実装した Facebook OAUTH を使用してコメントを投稿したいと考えています。ユーザーがコメント フィールドにコメント テキストを入力し、コメント ボタンを押すと、結果は? 何も起こりませんなんで?接続の切断、未処理のコンテンツ エラー、サーバー エラー、互換性エラー、サーバー証明書の欠落/無効などのセキュリティ エラー、Facebook OAUTH 通信エラーなど、さまざまな理由が考えられます。

    HTTP POST で同じことを行うとユーザーに表示されるエラーが発生します。

より一般的な Ajax / JavaScript の問題

  1. HTTP リクエストを使用してページをロードすると、ページがロードされたときにブラウザに表示されます。多くの場合、Ajax はページの読み込みに読み込まれるため、ブラウザーはリソースが読み込まれていることをユーザーに通知しません。

  2. Ajax を使用してリソース (ブログ投稿など) をロードする場合、Google は JavaScript を実行しないため、Google によってインデックスが作成されません。したがって、あなたのサイトやコンテンツを見つける人は少なくなります。

  3. レスポンシブなデザイン。Ajax の負荷の高いサイトは、CPU とネットワークのトラフィックを集中的に使用する可能性があるため、実際には、プレーンな古い HTML を使用した場合よりも、ページ読み込みにはるかに長い時間がかかります。

残念なことに、最新の Web サイトでは実際に JavaScript が必要になることがよくあります。では、上記をどのように処理しますか?

  1. 該当する場合は適切なテクニックを使用してください ( http://en.wikipedia.org/wiki/KISS_principle )

  2. エラーを処理します。

  3. Ajax を使用して POST を実行する場合、サーバーからの応答に 1 秒以上かかることが予想される場合は、ロード アニメーションを表示してユーザーに「触覚フィードバック」を提供します。

  4. 目立たない JavaScript

    目立たない JavaScript を使用すると、JavaScript を有効にしていないユーザーが、サイトの少なくとも基本的な機能を使用できるようになります。

    例:ユーザー A が非 JavaScript ブラウザーでブログにアクセスし、コメント ボタンをクリックします。ユーザー A がコメントを入力し、サーバーに通常の投稿を行い、ブログ投稿にリダイレクトされるポップアップ ウィンドウが表示されます。ユーザー B は、JavaScript が有効なブラウザーを使用してブログにアクセスします。ブログ投稿のすぐ下に、コメント欄と送信ボタンがあります。ユーザー B がコメントを入力して送信ボタンをクリックすると、Ajax リクエストがサーバーに送信されます。投稿されたコメントでページが更新され、ユーザーがリダイレクトされることはありません。

    基本的に、控えめな JavaScript は、通常の単純な古い HTML ページを常に読み込むことで可能になります。ページを読み込んだ後、HTML 要素とリンクを JavaScript アンカーと要素に置き換える JavaScript を実行します。これにより、JavaScript の実行を許可しないブラウザーでもサイトを使用できます。

資力:

控えめな JavaScript

Ajax エラー処理

これがあなたの質問に答えてくれることを願っています!

于 2013-03-04T00:29:31.400 に答える
1

ほとんどの場合、Ajax を使用できます。ただし、実装には追加の作業が必要になることに注意してください。

また、フォームがまだ必要な場合がいくつかあります。

  • ファイルのアップロード
  • 他のサーバーへのデータの送信
  • ダウンロードをトリガーするフォーム
于 2013-03-03T09:21:58.987 に答える
-1

両者の間に大きな違いはありません。私は通常、通常のフォームよりも ajax を好みます。

どの方法を選択するにしても、重要なことはそれを安全にする方法です。

たとえば、投稿フォームでデータを受け入れる Web サイトがあるとします。フォームを作成し、何千行ものコードをあなたのウェブサイトに投稿できます。データがどこから来ているのかわからないため、あなたのウェブサイトはそれを受け入れます. 例は、サイトの登録ページです。

フォームと一緒に md5 ハッシュをユーザーのブラウザに送信し、セッションに保存するとよいでしょう。したがって、ユーザーがフォームを送信すると、ハッシュがサーバーに送り返され、保存されたセッション値と照合できます。そうすれば、それがあなたのサイトであり、第三者からのものではないことがわかります.

于 2013-03-03T08:46:36.643 に答える