0
私はjQueryの3で、正しく解決するために熱心だ些細な問題を抱えているので、アイデアはこれです:AJAXリクエストを保留中の500ms後にスピナーを追加するには?
- AJAX要求に
- 待つ応答を行います。 500ms後に応答がない場合は、スピナーを表示
- レスポンスが返ってきたらスピナーを非表示にします。
私は現在何か働いています。しかし、問題は、これを正しいやり方でやっていることですか?
// helper function for setTimeout
function wait(ms) {
var deferred = $.Deferred();
setTimeout(function() { deferred.resolve() }, ms);
return deferred.promise();
}
var request = $.ajax({
dataType: "json",
url: "/api/articles/?" + $.param(params)
});
wait(500).then(function() {
if (request.state() === "pending") // works, but the docs says we should do this only for debugging purposes
$(".spinner").show();
});
request.always(function() {
$(".spinner").hide();
);
は、我々はrequest.state()
この方法を使用することはできますか?これはよりエレガントな方法で解決できましたか?
'var deferred = $ .Defereed();'はおそらく 'var deferred = $ .Deferred();'です。 – connexo
これを試してみてください。必要なものはトップにあるはずです。https://api.jquery.com/Ajax_Events/ –
CSSアニメーションを 'animation-delay:500;'で使うことをお勧めします。 AJAXリクエストを発生させたときにアニメーションスピナーを持つクラスを適用し、応答時にそのクラスからクラスを削除します。 – connexo