例 1、jquery ajax/" target="_blank">jquery ajax 同期メソッド
$.ajax({
url : 'test.php',
type : 'post',
async: false,//同期メソッドを使用、true は非同期Method
data: {'act':'addvideo', 'videoname':videoname},//ここでは Json オブジェクトが使用されます
success: function(data){
// ここにコード...
} ,
fail:function(){
//ここにコード...
}
});
例 2
//javascript
function test()
{
var a= 1 ;
$.ajax({
type : 'GET',
url : 'test.php',
data : 'page=112',
success :function(msg)
{
アラート(msg);
a= msg;
}
})
アラート(a);
}
// test.php
sleep('5'); //5 分間休む
echo 'in';
/*
このプログラムの動作は、最初に 1 (a=1) を出力することです。この状況から、jquery の ajax の実行プロセスがわかります。
非同期呼び出しであるため、
これは変数に値を代入する方法です。結局、この問題が見つかりました。
パラメータ async が false に変更されます。これは、ajax が結果を返すと、プログラムは実行を続けます。 🎜>
ここで、async のデフォルト設定値は true です。この場合、ajax がリクエストを送信した後、サーバーが戻るのを待っている間にフロントデスクが非同期メソッドになります。サーバーが正しい結果を返すまで、成功は実行されません。つまり、リクエストを行った後の 1 つのスレッドと 1 つのスレッドがこの時点で実行されます。 ajax ブロックの背後 (別のスレッド) 例:
例 3
type: "POST",
url: "Venue.aspx?act=init",
dataType: "html",
Success:function(result ){ //function1()
f1();
f2();
}
Failure:function (result) { >alert('Failed' ; ですが、同時に (この待機プロセス)、フォアグラウンドで function2() が実行されます。つまり、この時点で 2 つのスレッドが表示されます。ここでは、それらを function1() と function2() と呼びます。
asyn が false に設定されている場合、ajax リクエストは同期的です。つまり、この時点で ajax ブロックはリクエストを送信した後、function1() で待機し、function2() を実行しません。 function1()部分が実行されます。
注
同期とは、JS コードが現在の AJAX にロードされるときに、ページ内のすべてのコードのロードが停止され、AJAX が完了すると、ページが一時停止状態から抜け出すことを意味します。は実行を継続し、ページは一時停止されます。
この AJAX コードの実行中に、他のコードを非同期的に実行できます。
jquery の async:false、この属性