亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

jQuery Ajaxの詳しい解説

jQuery Ajax の詳細(xì)説明

jQuery は、Ajax リクエストを送信するためのいくつかの関數(shù)を提供します。最も複雑な関數(shù)は jQuery.ajax(options) であり、他のすべての Ajax 関數(shù)はこれを使用できます。 Ajax を完全に制御したい場(chǎng)合は、結(jié)果を取得します。それ以外の場(chǎng)合は、get、post、load などの単純なメソッドを使用する方が便利です。そのため、最初に最も単純な load メソッドを紹介します。 :

1.load( url, [data], [callback] )

Returns: jQuery パッケージングセット

説明:

load メソッドはリモート HTML ファイルコードをロードして DOM に挿入できます。 。

デフォルトでは GET メソッドが使用され、データパラメータが渡された場(chǎng)合は Post メソッドが使用されます。

- 追加パラメータを渡すと、自動(dòng)的に POST メソッドに変換されます。 jQuery 1.2 では、ロードされた HTML ドキュメントをフィルターするセレクターを指定でき、フィルターされた HTML コードのみが DOM に挿入されます。構(gòu)文は「url #some > selector」のようなもので、デフォルトのセレクターは「body>*」です。

説明:

load は最も単純な Ajax 関數(shù)ですが、その使用には制限があります:

主に次の目的で使用されます。 direct HTML を返す Ajax インターフェース

は、jQuery ラッパー上で呼び出す必要がある jQuery ラッパー メソッドであり、コールバック関數(shù)が設(shè)定されている場(chǎng)合でも、返された HTML をオブジェクトにロードします。ただし、Load インターフェイスは巧妙に設(shè)計(jì)されており、使い方も簡(jiǎn)単であることは否定できません。次の例は、Load インターフェイスの使用方法を示しています。

ヒント: 常に支払う必要があります。ブラウザーのキャッシュに注意し、GET メソッドのタイムスタンプ パラメーター (net Date()).getTime() を使用するときに追加して、送信される URL が毎回異なるようにすることで、ブラウザーのキャッシュを回避できます。


ヒント: 「 」などの URL パラメータの後にスペースを追加すると、「認(rèn)識(shí)できないシンボル」エラーが発生しますが、リクエストは正常に送信できます。ただし、HTML を削除すると問題は解決します。 .



2.jQuery.get( url, [data], [callback], [type ] )

Returns: XMLHttpRequest

Description:

リモートHTTP GETを通じて情報(bào)をロードしますリクエスト。


これは、複雑な $.ajax を置き換える?yún)g純な GET リクエスト関數(shù)です。コールバック関數(shù)は、リクエストが成功したときに呼び出すことができます。エラー時(shí)に関數(shù)を?qū)g行する必要がある場(chǎng)合は、$.ajax を使用します。


説明:


この関數(shù)は Get リクエストを送信します。パラメータは、


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>jQuery Ajax - Load</title>
   <script type="text/javascript" src="../scripts/jquery-1.3.2-vsdoc2.js"></script>
    <script type="text/javascript">
        $(function()
        {
            $("#btnAjaxGet").click(function(event)
            {
                //發(fā)送Get請(qǐng)求
                $("#divResult").load("../data/AjaxGetMethod.aspx?param=btnAjaxGet_click" + "&timestamp=" + (new Date()).getTime());
            });
            $("#btnAjaxPost").click(function(event)
            {
                //發(fā)送Post請(qǐng)求
                $("#divResult").load("../data/AjaxGetMethod.aspx", { "param": "btnAjaxPost_click" });
            });
            $("#btnAjaxCallBack").click(function(event)
            {
                //發(fā)送Post請(qǐng)求, 返回后執(zhí)行回調(diào)函數(shù).
                $("#divResult").load("../data/AjaxGetMethod.aspx", { "param": "btnAjaxCallBack_click" }, function(responseText, textStatus, XMLHttpRequest)
                {
                    responseText = " Add in the CallBack Function! <br/>" + responseText
                    $("#divResult").html(responseText); //或者: $(this).html(responseText);
                });
            });
            $("#btnAjaxFiltHtml").click(function(event)
            {
                //發(fā)送Get請(qǐng)求, 從結(jié)果中過濾掉 "鞍山" 這一項(xiàng)
                $("#divResult").load("../data/AjaxGetCityInfo.aspx?resultType=html" + "&timestamp=" + (new Date()).getTime() + " ul>li:not(:contains('鞍山'))");
            });
        })
    </script>
</head>
<body>    
    <button id="btnAjaxGet">使用Load執(zhí)行Get請(qǐng)求</button><br />
    <button id="btnAjaxPost">使用Load執(zhí)行Post請(qǐng)求</button><br />
    <button id="btnAjaxCallBack">使用帶有回調(diào)函數(shù)的Load方法</button><br />
    <button id="btnAjaxFiltHtml">使用selector過濾返回的HTML內(nèi)容</button>
    <br />
    <div id="divResult"></div>
</body>
</html>

のように URL に直接結(jié)合することも、データ パラメータを介して渡すこともできます:

$.get("../data/AjaxGetMethod.aspx?param=btnAjaxGet_click");

2 つのメソッドは同じです。効果があり、データ パラメーターが URL 內(nèi)のリクエストに自動(dòng)的に追加されます

URL 內(nèi)のパラメーターがデータ パラメーターを通じて渡される場(chǎng)合、同じ名前のパラメーターは自動(dòng)的にマージされません。

コールバックの署名関數(shù)は次のとおりです:


$.get("../data/AjaxGetMethod.aspx", { "param": "btnAjaxGet2_click" });

ここで、data は返されたデータ、testStatus は次の値を表します:


function (data, textStatus) {
  // data could be xmlDoc, jsonObj, html, text, etc...
  this; // the options for this ajax request
}

コールバック関數(shù)內(nèi)のこれは、さまざまな命令のオプション オブジェクトへの參照を取得するためのものです。オプションについては、こちらをご覧ください:

"timeout","error","notmodified","success","parsererror"

type パラメータはデータのタイプを指し、次の値が考えられます:

「xml」、「html」、「script」、「json」、「jsonp」、「text」。

デフォルトは "html" .

jQuery.getJSON( url, [data], [callback] ) メソッドは jQuery.get(url, [data],[callback], "json") と同等です

3 . jQuery.getJSON ( url, [data], [callback] )

Returns: XMLHttpRequest

同等: jQuery.get(url, [data],[callback], "json")

説明:

HTTP GET リクエスト経由で JSON データをロードします。

jQuery 1.2 では、「myurl?callback=?」などの JSONP 形式のコールバック関數(shù)を使用して、他のドメインから JSON データをロードできます。 jQuery は、コールバック関數(shù)を?qū)g行するために、? を正しい関數(shù)名に自動(dòng)的に置き換えます。

注: この行以降のコードは、このコールバック関數(shù)が実行される前に実行されます。

説明:

getJSON 関數(shù)は、get 関數(shù)の type パラメーターを「JSON」に設(shè)定するだけです。コールバック関數(shù)で取得されたデータは、すでに JSON 形式に従って解析されたオブジェクトです:

http://docs.jquery.com/Ajax/jQuery.ajax#options

によって返されます。サーバー文字列は次のとおりです:

[{""pkid"":""0997"",""ProvinceId"":""XJ"",""CityName"":""Aksu"",""CityNameEn "": ""Akesu"",""PostCode"":""843000"",""isHotCity"":false},

{""pkid"":""0412"",""ProvinceId" ":" "LN"",""CityName"":""Anshan"",""CityNameEn"":""Anshan"",""PostCode"":""114000"",""isHotCity"": false}]

この例では、data.length を使用して配列內(nèi)の要素の數(shù)を取得でき、data[0].CityName は CityName 屬性にアクセスします。最初の要素の

4.jQuery.getScript( url, [callback] )

Returns: XMLHttpRequest

同等: jQuery.get(url, null, [callback], "script" )

説明:

HTTP GET リクエスト経由で JavaScript ファイルをロードして実行します。

jQuery 1.2 より前では、getScript は同じドメイン內(nèi)の JS ファイルのみを呼び出すことができました。 1.2 では、ドメイン間で JavaScript ファイルを呼び出すことができます。注: Safari 2 以前では、グローバル スコープでスクリプトを同期的に実行できません。 getScriptでスクリプトを追加する場(chǎng)合は遅延関數(shù)を追加してください。

説明:

以前 dojo クラス ライブラリを使用したとき、公式のデフォルト ファイルはクロスドメインをサポートしていなかったので、最終的に dojo の使用を斷念しました (インターネットでクロスドメイン バージョンを見つけましたが、完璧ではないと感じました)それで私はこの関數(shù)のコア実裝と実裝について特に懸念しています

まず、get 関數(shù)を含むすべての jQuery の Ajax 関數(shù)を理解します。最後に jQuery.ajax() を使用し、getScript は値 "script" を渡します。最後に Ajax 関數(shù)で、script 型のリクエストは次のように処理されます:

$.getJSON("../data/AjaxGetCityInfo.aspx", { "resultType": "json" }, function(data, textStatus)
{
      alert(data.length);
      alert(data[0].CityName);
});

上記のコードはスクリプト ステートメントを動(dòng)的に作成しますブロックして先頭に追加します:

var head = document.getElementsByTagName("head")[0];            
var script = document.createElement("script");
script.src = s.url;

スクリプトが読み込まれたら、完了したら先頭から削除します:

head.appendChild(script);

この機(jī)能のクロスドメインアクセスとマルチブラウザサポートを主にテストしました。結(jié)果:


IE6FireFoxNotes

非クロスドメイン參照js


pass pass コールバック関數(shù)內(nèi)の data と textStatus の両方利用可能です
クロスドメインリファレンス jspass pass コールバック関數(shù)內(nèi) data と textStatus は両方とも uniffed です

以下は主要なテスト ステートメントであり、getScript 関數(shù)の使用方法を示すためにも使用されます:

  // Handle Script loading
            if ( !jsonp ) {
                var done = false;
                // Attach handlers for all browsers
                script.onload = script.onreadystatechange = function(){
                    if ( !done && (!this.readyState ||
                            this.readyState == "loaded" || this.readyState == "complete") ) {
                        done = true;
                        success();
                        complete();
                        // Handle memory leak in IE
                        script.onload = script.onreadystatechange = null;
                        head.removeChild( script );
                    }
                };
            }

5. jQuery.post( url, [data], [callback], [type] )

戻り値: XMLHttpRequest

説明:

リモート HTTP POST リクエストを通じて情報(bào)をロードします。

これは、複雑な $.ajax を置き換える?yún)g純な POST リクエスト関數(shù)です。コールバック関數(shù)は、リクエストが成功したときに呼び出すことができます。エラー時(shí)に関數(shù)を?qū)g行する必要がある場(chǎng)合は、$.ajax を使用します。

説明:

送信メソッドが「GET」から「POST」に変更されることを除いて、具體的な使用法は get と同じです。

6. jQuery.ajax( options )

戻り値: XMLHttpRequest

説明:

HTTP リクエスト経由でリモート データをロードします。

jQuery の基礎(chǔ)となる AJAX 実裝。シンプルで使いやすい高レベルの実裝については、$.get、$.post などを參照してください。

$.ajax() は、作成した XMLHttpRequest オブジェクトを返します。ほとんどの場(chǎng)合、このオブジェクトを直接操作する必要はありませんが、特殊な場(chǎng)合には、リクエストを手動(dòng)で終了するために使用できます。

$.ajax() にはパラメータが 1 つだけあります。それは、各設(shè)定とコールバック関數(shù)の情報(bào)を含むパラメータ キー/値オブジェクトです。以下の詳細(xì)なパラメータ オプションを參照してください。

注: dataType オプションを指定する場(chǎng)合は、サーバーが正しい MIME 情報(bào)を返すことを確認(rèn)してください (例: xml は "text/xml" を返します)。 MIME タイプが正しくないと、予期しないエラーが発生する可能性があります。 「AJAX リクエストのデータ型の指定」を參照してください。

注: dataType が「script」に設(shè)定されている場(chǎng)合、すべてのリモート (同じドメイン名の下にない) POST リクエストは GET リクエストに変換されます。 (読み込みにDOMスクリプトタグを使用するため)

jQuery 1.2では、ドメインを越えてJSONデータを読み込むことができますが、使用する際にはデータ型をJSONPに設(shè)定する必要があります。 「myurl?callback=?」などの JSONP 形式を使用して関數(shù)を呼び出すと、jQuery はコールバック関數(shù)を?qū)g行するために ? を正しい関數(shù)名に自動(dòng)的に置き換えます。データ型が「jsonp」に設(shè)定されている場(chǎng)合、jQuery は自動(dòng)的にコールバック関數(shù)を呼び出します。

説明:

これは、Ajax リクエストを送信する上記のすべての関數(shù)が最終的にこの関數(shù)を呼び出します。これらのパラメーターは、Ajax を完全に制御するために使用できます。 Ajax コールバック內(nèi) 関數(shù)內(nèi)の this オブジェクトはオプション オブジェクトでもあります

簡(jiǎn)略化された get 関數(shù)と post 関數(shù)が最も一般的に使用されるため、ここではオプション パラメーターについては詳しく説明しません。

學(xué)び続ける
||
<!DOCTYPE html> <html> <head> <script src="http://code.jquery.com/jquery-3.1.1.min.js"></script> <script> $(document).ready(function(){ $("#btn1").click(function(){ $('#test').load('/asset/demo.ajax.php?dm=txt&act=getfruits'); 可以自定義文本內(nèi)容! }) }) </script> </head> <body> <h3 id="test">請(qǐng)點(diǎn)擊下面的按鈕,通過 jQuery AJAX 改變這段文本。</h3> <button id="btn1" type="button">獲得外部的內(nèi)容</button> </body> </html>
提出するリセットコード
  • おすすめコース
  • コースウェアのダウンロード