XMLHttpRequestの詳細およびAjaxを利用した非同期要求の作成関係なく、どのようにXMLHttpRequestのタイプのインスタンス化されるのと関係なく、ブラウザやプラットフォームでは、XMLHttpRequestのメソッドとプロパティは、同じ設定しています。ので、広範囲に使用されては、表4-1のプロパティとメソッドを定義します。私は、メソッドのいずれかの詳細を提供していないとして、これらの資料で使用されていますが、私のプロパティに特別な注意を払うするには、時要求を、4つのプロパティをどのように要求faredを示すために使用されてデータを取得しています。とは、次のHTMLコードを参照する4つのプロパティを検討sendメソッドが呼び出された後の完了: ('httpcode')Document.getElementByIdにて。innerHTML = xmlhttp.status;)('httpstatusの'document.getElementById。innerHTML = xmlhttp.statusText;('結果の'document.getElementById)innerHTML = xmlhttp.responseText; Document.getElementByIdにて(' xmlresult')。innerHTML = xmlhttp.responseXML;
4つのプロパティは2つのサブカテゴリ:結果は、HTTPステータスに細分化することができます。ステータスとStatusTextのプロパティは、HTTP結果コードを取得します。 statusプロパティは、200の成功などの整数値が含まれます。 statusTextプロパティなどとして[OK]は、HTTP結果コードのテキスト表現を含んでいます。のresponseTextとresponseXMLをプロパティは、HTTPリクエストの結果を含んでいます。 2つのプロパティの違いははresponseTextとresponseXMLを参照の結果をXML DOM表現は、結果の文字列バッファが含まれます。 非同期要求の作成これは、同期の方法では、XMLHttpRequestオブジェクトを使用して、その瞬間は、ブラウザの他のメッセージの処理を停止と呼ばれる送信し、応答を待つ意味することが可能ですが、それは同期の方法では、XMLHttpRequestオブジェクトを使用するのはよくないようですこれは、ブラウザーをロックします。 現時点では、LoadAtomFeedコードを無視するとXMLHttpRequestに焦点を当て、どのようブラウザをロックすることができます見てみましょう。次の例では、10秒間ハングするASP.NETページであり、それは、XMLHttpRequestオブジェクトによって参照されます: ページの言語@"%="C#の"%" ASP.NETのサンプルでは、C#プログラミング言語を使用して書かれているが、単一のステートメント、System.Threading.Thread.Sleepです。 1つの文を10秒間スリープ状態にする、現在のスレッドになります。ソリューションは、非同期のAjaxのXMLHttpRequestを使用しています。非同期要求をブラウザにブロックされませんが、ユーザーをクリックし続けることができるか、ブラウザの他のタブを使用して。次のソースコードは、非同期要求を使用すると、正しく書かれたAjaxアプリケーションです:
そこは、書き換え、Ajaxアプリケーションにいくつかの新機能が追加、および非同期的にコンテンツを読み込んでの技術的な問題にも対処されます。 GetIt機能に焦点を当ててみましょう。GetItの実装は、以前のAjaxアプリケーションの例を除いて、openメソッドの3番目のパラメータは、要求が非同期であることを示すためtrueに似ています。これは、ときに、sendメソッドが呼び出されると、すぐに返されます。たびにXMLHttpRequestの非同期モードで動作し、フィードバックは、リクエストの状態には、呼び出し元に与えられます。 onreadystatechangeプロパティには、フィードバックを受け取る関数です。これは、フィードバック機能をそれぞれの前に送信すると、要求を完了するためにonreadystatechangeプロパティはリセットされます割り当てる必要がありますに注意することが重要です。これは、MozillaやFirefoxのソースで明らかにされます。 onreadstatechangeプロパティAsyncUpdateEvent機能が割り当てられます。は、スクリプト、他のコードの実行を継続して自由であるAsyncUpdateEventの実装では、switch文では、要求のテストは、現在の状態のとき、非同期要求が行われます。場合は、スクリプトの前に要求の結果を読み取ろうとするこの問題が発生する可能性が要求を完了されている。 readyStateプロパティを使用して、それは、HTTPリクエストの病期を把握することが可能です。 readyStateプロパティは、各値は、要求の状態を表して5つの値を含めることができます: •0:XMLHttpRequestのインスタンスが一貫性のない状態になって、その結果データを参照することはありません。 •1:要求が進行中であり、結果データを取得できない場合があります。 •2:要求し、その結果データをダウンロードして参照できるように準備しています。 •3:このスクリプトは、XMLHttpRequestのインスタンスにもかかわらず、データが完全に読み込まれていない相互作用することができます。 •4:要求と結果のデータを完全にされ、完成されている。 状態が異なる状態では、さまざまなプロパティを操作することが可能であることを示す要求と思われる。問題は、すべてのブラウザと同じ状態コードは、同じプロパティの状態をサポートしています。唯一のクロスプラットフォームソリューションを参照するにはXMLHttpRequestの結果、プロパティ(状態、statusText、はresponseTextとresponseXMLを)は、要求の状態を4に等しいです。ときに、要求の状態を4である場合、その結果、プロパティの有効な値が含まれることを確認することができます。 の呼び出しでは、非同期のAjaxアプリケーションの結果を実行し、作られて、ブラウザがロックされていません。することができますボタンをクリックすると、新しいブラウザを開いて、ネットサーフィン、別のWebサイトにします。 記事は、ソニアLandeを提出 免責事項:弊社のウェブサイトは、この資料の内容については責任を負いません。 Webarticles無料の情報リソースです。 重要: この記事は、"XMLHttpRequestの詳細とメイキングAjaxで非同期要求の"自動ソフトウェアによって翻訳された。大変申し訳ございませんが発生した可能性があります任意のスペルミスを感じている。お客様のご理解いただき、ありがとうございます。
|
||||||||
| Online: 226 users browsing the articles directory |
|
|