Web アプリ内で jQuery モバイルを使用しています。これら 2 つの関数を使用して、糸車とユーザーへのメッセージの表示と非表示を切り替えます。
function showScreenMsg(msg,text_only) {
$.mobile.loading('show',{ text:msg, textVisible:true, theme:'b', textonly:text_only});
}
function hideScreenMsg(){
$.mobile.loading('hide');
}
//AJAX CALL
function show_dtl(element,id){
showScreenMsg('loading',false);
var details;
$.ajax({
async:false,
url:'./shyne/ajax/show_dtl.php',
data: {user_dtl_id:id},
}).done(function(data)
{
if (data){
data = $.parseJSON(data);
details = data;
details = formatDetails(details);
hideScreenMsg();
}
}
);
if(details){return details;}
}
Ajax 呼び出しの前に適切なパラメーターを指定して showScreenMsg を呼び出し、Ajax が成功したら hideScreenMsg を呼び出します。
たとえば、人のリストでそれを行います。リスト要素をクリックすると、ajax によって人の詳細が取得されます。私の問題は、おそらく JQM (およびデバイス) の遅さのために読み込みメッセージが表示されないことです。つまり、デバイスがメッセージを表示する前に ajax の回答が得られる可能性があります。ただし、ユーザーがクリックしてから情報が表示されるまでに 3 ~ 5 秒かかります。この間は何も起こらないので、これは避けたいものです。誰にも解決策がありますか?