で行わ()メソッドの利点が何であるか:
$.ajax({
url: '@Url.Action("_sampleMethod","Sample")',
type: 'GET',
cache: false,
}).done(function (result) {
// ...
});
で行わ()メソッドの利点が何であるか:
$.ajax({
url: '@Url.Action("_sampleMethod","Sample")',
type: 'GET',
cache: false,
}).done(function (result) {
// ...
});
done()
メソッドは、一連の複数のAjax呼び出しがあり、コールバックを完了するために他のものが待機する場合に役立ちます。そのため、AjaxコールAが完了した後で、ポストAjaxコードをdone()
に実行します。 success()
は、主にあなたのニーズに応じてレスポンスを処理するのに役立つAjaxコールの一部です。
ありがとう。とった :) – SandaruwanH
あなたのコードがうまくフォーマットされていないが、私はとにかくそれに打撃を与えるだろう。
done()は、ajaxリクエストが成功したかどうかに関係なく、関数をトリガーします。
success()は、ajaxリクエストが成功した場合にのみ関数をトリガします。
ありがとうございます。 :)それは – SandaruwanH
成功はajax呼び出しのオプションとして定義されたjQueryの成功コールバックの従来の名前です。それが成功
$.ajax({
url: '/',
success: function(data) {}
});
済例
$.ajax({url: '/'}).done(function(data) {});
の繰延例に呼び出すことができるようしかし、$ .Deferredsと行われ、より洗練されたコールバックの実装では、成功コールバックを実装するための好ましい方法であるため、
良い点は、$ .ajaxの戻り値は、アプリケーションのどこにでもバインドできる遅延された約束です。だから、あなたはいくつかの異なる場所からこのajax呼び出しをしたいとしましょう。このajax呼び出しを行う関数のオプションとしてsuccess関数を渡すのではなく、関数に$ .ajax自体を返し、コールバックをdone、fail、thenなどでバインドすることができます。常に要求が成功するか失敗するかに関わらず実行されるコールバックです。 doneは成功した場合にのみ起動されます。
success
は、AJAX呼び出しが成功した場合のみ、つまり最終的にHTTP 200ステータスを返します。失敗した場合はerror
、失敗した場合はcomplete
を返します。 ($.ajax
によって返さ)jqXHR
オブジェクトsuccess
にjQueryの1.8で
は、常にでfail
とcomplete
とdone
、error
で置換されています。
ただし、現在の構文でAJAXリクエストを初期化できる必要があります。したがって、これらは同様のことを行う:
// set success action before making the request
$.ajax({
url: '...',
success: function(){
alert('AJAX successful');
}
});
// set success action just after starting the request
var jqxhr = $.ajax("...")
.done(function() { alert("success"); });
私はこの変更はjQueryの1.5の新しい繰延オブジェクトとの互換性のためだと思います。
どちらも独自のものであり、将来は削除される可能性がありますので、どちらも使用しないでください。代わりにjQueryがサポートしているES6の約束の標準 '.then()'を使用してください。 – jfriend00
は、その両方の目的をカバーします()。 – SandaruwanH
はい、 '.then()'は必要なものだけです。それはES6の約束の標準です。 – jfriend00