web-dev-qa-db-ja.com

Webページ投稿送信とAJAXの比較

どちらが良いですか?

クリックごとにページをリロードする必要がないため、AJAXで100%動作するサイトが少し最適化される可能性があることがわかります。

しかし、私は画面の下部にある大きな送信ボタンの大ファンです。

ほとんどの場合、ページの読み込み時間を最適化するだけで、サイトをAJAXに変換するのに時間をかける価値はありますか?

2
Talvi Watia

ほとんどの場合、AJAXを使用してフォームを送信した場合でも、手動で送信する必要があります。 JavaScriptはさまざまな理由で常に有効になるとは限りません。通常、ほとんどのテキスト専用ブラウザはJavaScriptを解釈しないため、フォールバックすることが重要です。また、ほとんどのフォームに適用できないことはわかっていますが、検索エンジンはJavaScriptを解析および実行する機能が非常に限られているため、メニューの構築には使用しないことをお勧めします。

AJAXでフォームを強化する方が良いですか?それはあなたの状況と実装にも依存します。あなたがしているのがAJAXフォーム送信だけなら、jQueryやMooToolsのようなJavaScriptフレームワークの20Kの余分なオーバーヘッドに反対することをお勧めします。その場合は、純粋なJavaScriptを使用してください。ただし、他の場所でフレームワークを使用している場合は、適切な選択になる可能性があります。 AJAXを使用すると、多くのユーザビリティの問題(戻るボタンの動作など)が発生する可能性があることに注意してください。

また、警告とわかりやすいリマインダーとして、JavaScriptで検証を行うだけではありません。何よりもまず、サーバー上で行う必要があります。 JavaScriptを使用して、セキュリティを強化します。提供するのではありません。

7
Virtuosi Media

どちらも他より優れているわけではありません。それは大部分の好みの問題です。ページ全体をリロードしますか、それとも特定の部分のみをリロードしますか。フォームがすべて表示されている場合、ajaxはおそらくページの再読み込みよりも遅いでしょう。ただし、フォームがページのごく一部である場合、ajaxはおそらくより高速です。

あなたはまだ大きな送信ボタンを持つことができます。送信しないでください。 onclickイベントをキャッチし、ajax thangを実行し、falseを返します。

jQuery をチェックして、非常に簡単なAjaxの内容を確認してください。

5
hookedonwinter

これらは相互に排他的ではありません。プログレッシブエンハンスメントでは両方を使用できます!

POSTを介して送信する基本フォームから開始し、それを処理するサーバー側コードを記述して、更新される前のページにリダイレクトします。これはアクセシビリティと非JSの側面をカバーしています。

次に、フォームのonsubmitイベントを「ハイジャック」するAJAXコードをページに追加し、同じサーバー側コードを実行するAJAX関数を呼び出します送信を処理しますが、今回はページの更新方法を示すデータを返します。 falseを返すことを忘れないでください JS関数から、フォームが通常の方法でポストされないようにします。

これで、大部分のユーザーにとって「より速い」エクスペリエンスが得られ、バックアップとしてすべてのユーザーにとって機能的なエクスペリエンスが得られます。

2
DisgruntledGoat

考慮すべき問題は、ユーザーエクスペリエンスとコンバージョンとの関係です。

AJAXを使用してユーザーのエクスペリエンスを改善し、ユーザーの変換を支援する場合は、おそらくそれを使用する必要があります。

簡単な例:ユーザーがユーザー名を選択します。ユーザー名はすでに使用されています。 AJAXを使用してバックグラウンドでチェックインし、すぐに彼に知らせると、フォームに入力してページをリロードさせるよりもはるかに優れています。

ほとんどの場合、AJAXが物事を改善することがわかります。

0
Sylver