ajax呼び出しが終了するまで、スピナーを表示するのは簡単です。これがどのように行われるかの例です:
loading = {
count: 0
};
loading.finish = function() {
this.count--;
if (this.count==0) this.$div.hide();
};
//
loading.start = function() {
this.count++;
if (!this.$div) {
var html = '<div style="position: fixed;z-index:100;left:0;top:0;right:0;bottom:0;background: black;opacity: 0.6;">';
html += '<table width=100% height=100%>';
html += '<tr><td align=center valign=middle>';
html += '<img src=img/loading.gif>';
html += '</td></tr>';
html += '</table></div>';
this.$div=$(html);
this.$div.prependTo('body');
}
setTimeout(function(){
if (loading.count>0) loading.$div.show();
}, 500);
};
// the function to call
askUrl = function(url, success) {
var httpRequest = new XMLHttpRequest();
httpRequest.onreadystatechange = function() {
if (httpRequest.readyState === 4) {
if (httpRequest.status === 200) {
success(msg);
}
loading.finish();
}
};
loading.start();
httpRequest.open('GET', url);
httpRequest.send();
};
askUrlを呼び出しても、サーバーが500ミリ秒以内に応答しない場合、画面は灰色になり、スピナーが表示されます。
これは短いコードであり、実際には目的の結果に依存するため、これがjQueryまたはプラグインでさえ利用可能であるかどうかはわかりません。
ここでgifスピナーを入手しました。