すべてが美しいように見えますが、いくつかの落とし穴があります。これについては、以下で説明します。
Ajaxは単なる頭字語ではなく、アイデアです
AjaxはAsynchronous JavaScript and XMLの頭字語ですが、そのイデオロギーは明らかになりません。 Ajaxは、サーバー側のWebアプリケーションが機能するためにページ全体をリロードする必要がなく、サーバーからクライアントへ、またはその逆にデータを無駄に追いかける必要がないことを示すイデオロギーです。 Ajaxを使用すると、Webアプリケーションの柔軟性と最新性が向上し、ユーザーはより生産的かつ便利にWebアプリケーションを操作できるようになります。
これは本当にJavaScriptです。
AjaxアプリケーションはJavaScriptで記述し、原則としてXMLHttpRequestオブジェクトを使用してデータを転送します(Microsoftブラウザーの場合、ActiveXObject(Microsoft.XMLHTTP)は役に立ちません)。 XMLHttpRequestオブジェクトは、 World Wide Web Consortiumによって承認されています。 この技術は比較的最近普及しているため、共通の標準は存在せず、その結果、異なるブラウザーはAjaxを異なる方法で理解したり、特別なアプローチを求めたりする可能性があります。Microsoftのブラウザーはその例です。 グローバルな互換性を高めるには、フレーム、Cookie、Javaアプレット、Flashなど、他の技術的なソリューションを使用できます。 ただし、フレームとCookieが常に割り当てられたタスクに対応していない場合、JavaアプレットまたはFlashは重すぎます。 悪夢の中で完全にフラッシュで作成されたWordPress管理パネルを想像したことがありますか?
Ajaxを使用するかどうかに関係なく、JavaScriptは以前は利用できなかった新しい高みに達しました。 現在、それは現代のウェブマスターのための本格的なツールであり、もはやそれを無視する意味はありません。便利で使いやすいです。 たとえば、JavaScriptを積極的に学び始めました。以前は一般的なプレゼンテーションと簡単なスクリプトの作成に満足していましたが、今ではAjaxとより密接に連携する予定なので、さらに掘り下げました。
JavaScriptを二流または有害な言語と見なす開発者は、できる限り早くJavaScriptを避けます。 ただし、Ajaxアプリケーションを作成するタスクに直面している場合は、JavaScriptを使用する必要があります。 類推できるのは、JavaアプレットまたはFlashだけです。
Ajaxは非常にインタラクティブなので、アプリケーションの設計やコーディングの問題が問題を引き起こす可能性があります。 AjaxはJavaScriptからマナーのすべてのルール、すべてのルールと禁止事項を継承しました。これは、既に完成したアプリケーションの作成、デバッグ、テストに適用されます。
XMLはオプションです
頭字語Ajaxの「X」はXMLに由来するという事実にもかかわらず、その使用は完全にオプションです。 たとえば、区切り文字付きのテキストだけを使用することも、HTMLコードの一部だけを使用することも完全に許可されます(一般に、リクエストの送信先のスクリプトは、以前のコードを単に置き換える既成のコードを生成します)。 そして、他の誰かがYAMLマークアップを使用します。
これまでのXMLHttpRequestは、Flashとは異なり、バイナリデータ形式ではうまく機能しません。 しかし、まもなくこの状況は修正されるでしょう。 すでに修正、松葉杖があります-しかし、それはそうではありません。
結論として、どのデータ形式がより便利で高速かを分析してください。 たとえば、単純な操作の場合、YAMLまたはCSVは優れており、XMLは厚すぎます:)
HTTPリクエストの増加をカウントして計画する
ウェブマスターにとって最も明らかな問題は、これからウェブアプリケーションが数百キロバイトの時間、たとえば10分で送信するのではなく、より頻繁に小さなボリュームで送信することです。 実際、これは、Ajaxリクエストの処理が遅れ、Webサーバーの負荷が増加する可能性があることを意味します。 これは、Ajaxアプリケーションの設計レベルでも考慮に入れる必要があります。
Ajaxリクエストをきちんと最適化する
結果としてリクエストを最適化すると、リクエストの送受信速度が最小限に抑えられるため、無理をしないでください。 サーバー側の圧縮を有効にします。 すべての最新のブラウザはそれを理解し、感謝します。
ただし、より良い解決策があります-クエリキャッシュ。 また、クライアント側でキャッシュしようとして自転車を発明しないでください-サーバーに直接キャッシュしてください。 Ajaxアプリケーションは、圧縮よりもはるかに多くの恩恵を受けます。
接続の最大数を覚えておいてください
AjaxアプリケーションはHTTP仕様によって制限されているため、同じネットワークアドレスへの接続を2つまでしか開くことができません。 幸いなことに、ほとんどの場合、これらの制限はありません。 ただし、ブラウザまたはネットワーク管理者に問題がある可能性があります。 しかし、後者は、良いことに、これに彼の目を閉じます。
答えに従ってください
従来のWebアプリケーションでは、開発者は通常、ユーザーがデータを取得する方法を気にしません。 はい、実際、これは必要ありません。 Ajaxはそれが好きではありません。 「送受信処理の受信」の順序に従うことが重要です。そうしないと、まったく予期しない問題が発生する可能性があります。
エラーに注意してください
長年、ページの表示に問題があるユーザーは、ブラウザの「戻る」ボタンをクリックします。 最新のAjaxアプリケーションでは、これも重要です。 結局のところ、通常のgifイメージでは、リクエストのステータスを判断するには不十分です。
エラーが発生した場合は、通知を送信してそれらを分析し、エラーや問題を排除してください。 そして、ユーザーは一定の時間の後にフレンドリーなものを出力しました。 また、最新のJS / Ajaxフレームワークは、タイムアウトで正常に動作する方法を知らないことを認識する価値があります。
セキュリティの昔話
実際、Ajaxアプリケーションは従来のアプリケーションと同じくらい安全です。 見出しは同じで、コミュニケーションの手段と手段は同じです。 古典的なエラーは冷静にAjaxアプリケーションの遺産になる可能性があるため、いくつかのことを別の行として注意することは価値があります。
これはXSSです。それ自体は目新しいものではなく、Ajaxアプリケーションの普及によって人気を博し始めたばかりです。 少なくとも、ユーザーからのHTMLコードをフィルタリングします。 HTTPリファラーもチェックしてください-これは重要です。
現在、ネットワークの専門家は、JavaScriptを積極的に使用しているサイトを不適切に保護すると、サーバーへの不正アクセスだけでなく、訪問者のコンピューターへのアクセスにもつながるという結論に達しました。 あなたの怠inessのために誰かがICQまたはウォレットから連れ去られたことを知るのは不快になるので、注意してください。
「ご清聴ありがとうございました」の代わりに
このテキストは無料の翻訳であり、AjaxについてITが知っておく必要のある10の事項に修正と追加を加えています。
私のブログからクロスポスト。