3

コードは次のとおりです。

$.ajax({
        url: "script.php",
            success : oneHandler
        });

$.ajax({
        url: "script.php",
            success : twoHandler
        });

これら 2 つの関数呼び出しを同時に呼び出す場合、最初の呼び出しの応答で「oneHandler」が実際に呼び出されることが保証されますか? つまり、追加された文字列が一致するかどうかがチェックされますか?

データを追加するとどうなりますか:

dataType: 'json',
data: {"json": "one"} ,

dataType: 'json',
data: {"json": "two"} ,

それぞれ?

postメソッドを使用するとどうなりますか?

4

2 に答える 2

2

もちろん、JavaScript はブラウザーのシングル スレッド モデルであるため、真の同時実行などというものはありません。お互いに非常に近いだけです。

$.ajax内部的には、と フレンドを介して行うリクエストごとにオブジェクトが作成されます。このオブジェクトは、サーバーと通信して応答を受け取るオブジェクトです。成功のコールバックはそのオブジェクトに添付されます。

各リクエストは個別のオブジェクトであるため、正しいコールバックが実行されることが保証されます。複数のリクエストが同時に共存できることに注意してください。それらは互いに終了するのを待ちません。必要に応じて使用できますDeferred.pipe

于 2012-11-21T03:13:05.470 に答える
1

これら 2 つの関数呼び出しを同時に呼び出す場合、最初の呼び出しの応答で「oneHandler」が実際に呼び出されることが保証されますか?

はい

post メソッドを使用するとどうなりますか?

関係ない。正しいコールバックを呼び出すことが保証されています

于 2012-11-21T03:11:06.580 に答える