AJAX - サーバーにリクエストを送信します
XMLHttpRequestオブジェクトは、サーバとデータを交換します。
サーバに要求を送信します
サーバーに要求を送信するために、我々は、XMLHttpRequestオブジェクトのopen()とsend()メソッドを使用します。
xmlhttp.send();
ウェイ | 説明 |
---|---|
(メソッド、URL、非同期)オープン | タイプは、リクエスト、URLや要求のかどうか非同期処理を指定します。
|
送信(文字列) | サーバに要求を送信します。
|
GETやPOST?
POSTと比較して、簡単かつ迅速に取得し、ほとんどの場合に使用することができます。
ただし、次の場合には、POSTリクエストを使用してください:
- (サーバー上のデータベースをファイルまたは更新)キャッシュファイルを使用することができません。
- サーバに大量のデータを(POSTデータの量を限定するものではない)を送信します
- 送信する際にユーザーの入力が未知の文字が含まれ、POSTはGETよりも安定し、より信頼性があります
リクエストをGET
シンプルなGETリクエスト:
上記の例では、キャッシュされた結果を得る可能性があります。
この問題を回避するには、URLに固有のIDを追加します。
GETメソッドを介して情報を送信したい場合は、URLに情報を追加します。
POSTリクエスト
簡単なPOSTリクエスト:
あなたは、HTMLフォームのPOSTなどのデータは、HTTPヘッダを追加するsetRequestHeader()を使用することが必要な場合。 そして、あなたはsend()メソッドでデータを送信することを指定します。
例
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("fname=Henry&lname=Ford");
»をお試しください
方法 | 描述 |
---|---|
setRequestHeader( header,value) |
向请求添加 HTTP 头。
|
URL - サーバー上のファイル
URL引数のopen()メソッドは、ファイルサーバのアドレスです。
ファイルには、.txtファイルおよび.xml、またはそのような(サーバー上でタスクを実行するために、応答を返す前に)の.aspと.PHPなどのサーバー・スクリプト・ファイル、として、ファイルの任意のタイプにすることができます。
非同期 - TrueまたはFalse?
AJAXは、非同期JavaScriptとXML(非同期JavaScriptとXML)を意味します。
あなたはAJAX XMLHttpRequestオブジェクトを使用したい場合は、その後、そのopen()メソッドをtrueに設定する必要があります非同期パラメータ:
Web開発者のために、非同期リクエストは大きな前進である送ります。 実行するサーバーでは、多くのタスクは非常に時間がかかります。 AJAX前にアプリケーションがハングまたは停止する恐れがある、起こります。
AJAXは、JavaScriptを介してサーバーからの応答を待たずに、しかし:
- サーバからの応答を待っている間に他のスクリプトが実行します
- 応答は、プロセスに応答する準備ができたら
非同期=真
機能を実行するonreadystatechange準備のイベントに応答して、非同期を使用して= trueを、してください条項:
例
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","ajax_info.txt",true);
xmlhttp.send();
»をお試しください
あなたは後の章でonreadystatechange内容について詳しく説明します。
偽非同期=
非同期を使用するには=偽、偽の3番目のパラメータでopen()メソッドを設定します。
xmlhttp.open("GET","test1.txt",false);
私たちは、偽の非同期を=使用することをお勧めしますが、いくつかの小さな要求に対しても可能であるしないでください。
サーバの応答が進行する準備ができるまでJavaScriptが待機する、覚えておいてください。 サーバーがビジー状態または低速である、またはアプリケーションがハングを停止した場合。
注:非同期を使用する場合=偽、onreadystatechange関数を記述しないでください-送信にコードを置く()バックステートメントに:
例
xmlhttp.send();
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
»をお試しください