1.簡単に言えば
AJAX(非同期JavaScriptとXML)は、ページをリロードする必要はありませんパーシャルリフレッシュ技術であり、あなただけの部分更新を実行することができます
たとえば、次のようにビデオ弾幕、親指、ログイン認証...
2.JavaScript原生AJAX
ステップ:
1.コアのXMLHttpRequestオブジェクトを作成します。
VAR変数名=新しいXMLHttpReques();
2.コアオブジェクト開放要求。
.Open変数名(パラメータ、二つのパラメータ、三つのパラメータ)。
パラメータ:方法で提示データ(GETまたはPOST)
二つのパラメータ:リクエストアドレス
三つのパラメータ:非同期(真[デフォルト]非同期、偽)かどうか
3.コア・オブジェクトの送信要求。
変数名は)(.send。
4.受信データ。
変数名.onreadystatechange =関数(){...}
コード例:
HTML:
<スクリプトタイプ= "テキスト/ javascriptの"> 関数jsajax(){ VARの XHR = 新規のXMLHttpRequest(); xhr.open( "ポスト"、 "JsAjax"、真の); xhr.send(); xhr.onreadystatechange = 関数(){ 場合(xhr.statusの== 200 && xhr.readyStateの== 4 ){ VAR I = xhr.responseText。 document.getElementById( "MSG")のinnerText =。私は、 } } } </ SCRIPT> </ HEAD> <BODY> jsajax: < <ボタンのonclick = "jsajax() "> 私は驚きのポイントを持っている</ボタン> </ BODY> </ HTML>
ジャワ
AJAXコンテンツは、テーマに応じて、得られたので、データの使用が返されてもよい//ためのPrintWriter
のPrintWriterライター= response.getWriter(); writer.print(「JSネイティブAJAX」)。
ネイティブAJAXは、一般的にのみ理解する必要があり、使用することは非常に面倒であり、より多くのAJAX以下JQバージョンを使用することです。
バージョン3.JQuery AJAX
1を導入したjQueryのAJAXの3つの書かれたバージョンは、1個から3個以下の文言であり、
最初:
$アヤックス({
URL: "パス要求"、
データ:{ "キー名1":値1、 "二つの鍵":値2 "キー名3":3 ......}値、
タイプ:「方法を取得/ポストで提示」、
データ型: "戻るデータフォーマット"、(一般:テキスト、JSON)
非同期:真/偽、
成功:関数(){}、
エラー:関数(){}
})
URL:要求パス;データ:データ要求;タイプ:データ要求モード;データ型:戻りデータ・フォーマット;非同期:非同期かどうか;成功:この機能の実装を成功が行われ、エラー:この関数の実装が失敗しました
コード例:
$アヤックス({ URL: "JQAjax" 、 データ:{ "名": "李四"、 "年齢":24 }、 タイプ: "ポスト" 、 データ型: "テキスト" 、 非同期:真、 成功:関数( OBJ){ $( "#msg" )の.text(OBJ); } })
第二および第三:
第二と第三の方法で提示され、$を因数分解される。(取得)と$ .post()基本的に同じ内容です
$のに.get(
「パス要求」、(第一の実施形態のURLに対応します)
{ "キー名1":値1、 "二つの鍵":値2 "キー名3":値} ...... 3、(データに対応)
関数(){}、(对应成功:関数(){})
(データ型に対応する)「戻るデータフォーマット」
)
$ .post(
「パス要求」、
{ "キー名1":値1、 "二つの鍵":値2 "キー名3":3 ......}値、
関数(){}、
「戻るデータフォーマット」
)
コード例:
$に.get(
"JQPostAjax" 、
{ "名": "张三"、 "年齢":23 }、
機能(OBJ){
$( "#のMSG" )は.text(OBJ); }、 "テキスト" ); $ .post( "JQPostAjax" 、{ "名": "张三"、 "年齢":23 }、機能(OBJ){$( "#のMSG" )は.text(OBJ);}、 "テキスト" );
4.json
- 概要:JSON形式は、文字列は、データ送信が軽量です。
JSONデータ・フォーマット(三種類)
1.アレイ
[値1、値2、値3 ...]
任意のデータ型の値
2.オブジェクト
{ "キー名1":値1、 "2キー名": "値2"} ......
3.混合モード
【課題{1}、{2}オブジェクト、オブジェクト{3} .....]
{[1つのアレイ]、[配列2]、[3アレイ] ...}
[OK]を、単に双方向混在モード、実際の文言は限り正しく({}、[]を互換的に使用される)ネストされ、固定されず、ここで説明。
例えば:
{
"ゾーン": "ボス"、
"人":[
{ "名前": "张三"、 "年齢" 23、 "sroce":[98,99,100]}、
{ "名前": "李四" 、 "年齢":24、 "sroce":[87,87,87]}、
{ "名前": "王五"、 "年齢" 25、 "sroce":76,876,65]}
]
}
5.jackson
処置:ジャクソンアレイ、コレクションは、...オブジェクト形式のJSONに変換され、
使用します。
1.オブジェクトを作成しますObjectMapper
ObjectMapperオブジェクト名=新しいObjectMapper();
2. JSONに指定されたデータ
文字列変数名=オブジェクト名.writeValueAsString(「指定されたデータ」)。
コード例:
学生S1 = 新しい生徒( "张三"、23、新しい INT [] {93,94,95 })。 学生S2 = 新しい生徒( "李四"、24、新しい INT [] {94,95,96 })。 学生S3 = 新しい生徒( "王五"、25、新しい INT [] {95,96,97 })。 学生S4 = 新しい生徒( "赵六"、26、新しい INT [] {96,97,98 })。 学生S5 = 新しい生徒( "孙七"、27、新しい INT [] {97,98,99 })。 一覧 <学生>学生= 新ArrayListの<学生> (); students.add(S1)。 students.add(S2)。 students.add(S3)。 students.add(S4)。 students.add(S5)。 // 转化为JSON / * * 1.创建ObjectMapper对象 * 2.使用writeValueAsString将数据转化为JSON格式 * / ObjectMapperマッパー = 新しいObjectMapper(); 文字列のJSON = mapper.writeValueAsString(学生)。 response.setContentType( "テキスト/ HTML;のcharset = UTF-8" )。 PrintWriterのライター = response.getWriter(); writer.print(JSON)。