300ms以上かかるすべてのajax呼び出しでbody要素に「loading」クラスを追加したかったのです。そこで、common.jsファイルに次のスクリプトを追加しました。
$(document).ready(function ()
{
var timer;
$("body").on({
ajaxStart: function ()
{
var body = $(this)
var timer = setTimeout(function ()
{
body.addClass("loading");
}, 300)
},
ajaxStop: function ()
{
$(this).removeClass("loading");
clearTimeout(timer);
}
});
});
これは、少なくとも1秒の長さでajax呼び出しを行う場合に機能します。それらが即時である場合、ローディングクラスはbody要素に残ります。
最初のajax呼び出しは300msが経過する前に終了し、クラスを削除してタイマーをクリアする必要があると思います。これには10msかかるとしましょう。しかし、その後290ms後にタイマーが起動します...
どうすればそれをテストできますか?そして天気私は上記のタスクを達成するために何か間違ったことをしています。
PS私はASP.NETMVCを使用しています。