2012-03-17 19 views
-1

私はIBM's websiteでAJAXについて読んでいました。ここでは、それは言ったことです。Ajaxの危険

アプリケーションが通信に失敗した場合、実際に何が起こっているかについてユーザにはわからないまま残る可能性があります。フォーム提出ボタン をクリックしても何も起こらない場合、Webサイトが壊れている可能性があります。 アプリケーションでエラーが発生したと通信できない場合、ユーザー は、通常、その操作が成功したものとみなします。この仮定は、具体的には が成功しなかった場合、特にユーザがフォームのコンテンツ に取り組んでいたばかりの場合に、 に極端な不満をもたらす可能性があります。 にエラーまたはタイムアウトが発生したときにアプリケーションに通知する場合、少なくともユーザーは をコピーしてデータを貼り付けてローカルに保存することができ、最悪の場合は の可能性があります。

この問題は、JavaScriptまたはHTMLを使用しているときにも発生する可能性があります。著者はなぜAJAXをAjax can ruin your siteと呼んでいますか?

+0

"危険"または "危険な"ページ。 –

+0

それは言う: "あなたのサイトを破壊することができるアヤックス.." –

+1

あなたが引用した段落は、それを適切に説明しています。あなたが間違っていると、HTMLもあなたのサイトを台無しにする可能性があります。 –

答えて

1

AJAXを使用してフォームの送信を処理すると、通常のユーザーエクスペリエンスが変更されるため、危険です。ユーザーが送信ボタンをクリックすると、実際に何かが起こっていることを通知することになります(たとえば、読み込み中のGIFを置くなど)

リクエストが失敗した場合は、おそらく解決策と情報を提供します。あなたが送信した情報が保存されていれば、彼らはフォームの提出が本当に何かをしたかどうか分からないでしょう...

AJAXは "危険です"これは、開発者が完全に動作するために完全に依存しているためです。

たとえば、ネットワーク接続が失われた場合、AJAXリクエストは失敗し、多くの開発者はタイマーを使用してこの種のものをチェックすることを忘れてしまい、実際に何が起こったのか不思議に思うことになります。リクエストがサーバーに送信されたが、応答が返されなかった場合は、アクションが完了している可能性があります(たとえば、新しいユーザーを登録している)が、ユーザーはわかりません。

1

ローカルJavaScriptコードが意図したとおりに実行されることをより確実に確認できるためです。しかし、Ajaxはネットワークの輻輳やその他の外部問題の影響を受ける可能性があるため、確実ではありません。適切な予防措置(タイムアウトのチェックなど)が取られない限り、特定の関数がまったく呼び出されない可能性があり、ユーザーは混乱します。

1

静的なjavascriptコードは、実行されるたびに同じ結果が得られるはずです(これは実際にはコードに依存しますが、一般的な/簡単なjavascriptについて話しています)。 一方、AJAXは常に実行に影響する外部要因(インターネット接続の問題/タイムアウト/サーバ負荷など)の影響を受けます。 多くのAJAXスクリプトがタイムアウトを処理していない、または読み込み中に "ローディングバー"(存在する場合)を残して失敗しました

関連する問題