Ajaxテクノロジーが成長するにつれて、さまざまなプログラミング手法が登場します。 特に、過去数年にわたって、Ajaxアプリケーションの作成に対する2つの独立したアプローチが登場しました。
フランク・ソマーズは 、彼のブログのページでこの興味深い問題
について議論しています。 彼は、これまでに、開発者の間でAjaxアプリケーションを考慮すべきことについてコンセンサスが得られたと言います。 同時に、JavaScriptの使用方法と、クライアントとサーバー間で権限を分配する方法については、さらに多くの意見の相違があります。
私たちは、異なるアプローチを使用するさまざまな開発パッケージについて話している。 DojoやPrototypeなど、それらの一部は、ユーザーがJavaScriptで作業する完全な自由を与え、クライアント側により焦点を当てています。 同時に、他の開発パッケージでは、すべてのJavaScriptツールがJSFコンポーネントに「隠され」ており、主な作業はサーバーで実行されます。
ロシアのプログラマーでありWeb開発者のIvan Sagalaevが
、これら2つのアプローチについて詳しく説明します。 同時に、彼は、2つのアプローチが互いに完全に互換性があり、それらをうまく組み合わせることができることを強調しています。 イヴァン・サガラエフはそのような組み合わせの例を示します。
Ajaxアプリケーションを作成する最初のアプローチ:
HTML転送 。 このアプローチは、サーバーと対話するときにわずかに変化するページに最適です。 たとえば、サーバーに送信した後、画面に再び表示される特定のフォームと、追加の情報が表示されます。 この場合、Ajaxを使用すると、ネットワーク経由で送信されるデータ量を削減できます。サーバーからは、表示を含むフォーム全体ではなく、表示自体のみが取得されます。 このアプローチの利点には、シンプルさが含まれます。 主な欠点は、さまざまな部分が変化するより複雑なページを更新する場合、クライアントからサーバーへ大量のデータを追跡する必要があり、「右上隅にあるブラウザーアイコンのアニメーション効果がないと、Ajaxのポイント全体が縮退する」ことです。
Ajaxアプリケーションを作成する2番目のアプローチ:
構造データの転送 。 これは、従来の意味でのAjaxの本質です。この方法は、サーバーに接続し、XMLで表現されたシステムの状態の一部の説明を取得するために考案されたためです このアプローチの利点は、最大限の柔軟性です。 サーバーから要求される形式とデータセットは、クライアントにない情報を正確に含み、それ以外はまったく含まれない、絶対に思い付くことができます。 クライアントでは、Javascriptを使用して、必要に応じてページを変更できます。
構造転送で最も明らかなマイナスは、プログラミングの範囲とはるかに大きな複雑さです。
Ivan Sagalaevによると、最初の問題はXMLの使用です。 形式が明確で素晴らしいという事実にもかかわらず、Javascriptで作業できるのはDOMメソッドを使用する場合だけです。 ただし、この特定の欠点は最近JSON形式を使用して解決されました。サーバーから返されるデータはXMLの形式ではなく、Javascriptコードの形式です。
2番目の難点:DOMメソッドを使用してHTMLを完全に手動で構築します。 しかし、最悪の部分は、そうすることによって、ページの外観が設定されているシステムに2つの完全に異なるセクションが表示されることです。HTMLテンプレートとJavascriptコードです。
Sagalaevによると、Ajaxアプリケーションを作成するための2つの「互換性のない」アプローチは、XMLのみの使用に制限しない限り、組み合わせることができます。 次の方法が適用されます。
*サーバーからの応答はJSONオブジェクトとして送信されます。
* HTML生成に関係のないことは、オブジェクトからのデータを使用してスクリプトによって実行されます。
* HTMLのいくつかの異常なセクションを変更する必要がある場合、それらは同じオブジェクトの行で送信されます。
*サーバー上のHTMLの可変部分は、小さな包括的テンプレートとして作成され、最初のページ形成時とAjax応答の両方で使用されます。
「このアプローチについて私がまだ気に入らない唯一のことは、サーバー側の作業量がわずかに増加していることです」とIvanは彼の「Manic Weblog」で
締めくくりました。