私は、Web アプリにすべてのコンテンツを挿入するために使用している 100 以上の ajax 呼び出しを含む Web アプリを構築しています。
ページを非表示にして、すべての ajax 呼び出しが完了するまで ajax スピナーを表示する方法を見つけたいと思っていました... および/またはアプリ全体が読み込まれてから、サイトを表示します。
そうしないと、ユーザーがページをナビゲートすることができ、A. 正しくレンダリングされない可能性があります。または、B. 完全にロードされたときにサイトがホームに更新されたときにナビゲーションの途中になる可能性があります。
ソリューションの根性に出くわしましたが、実装方法がわかりません。または2つを一緒に...大学のプロジェクトはプロからはほど遠いですが、これらは有望に見えました...
https://stackoverflow.com/a/14038050
$(document).ajaxStop(function () {
// $.active == 0
});
https://stackoverflow.com/a/12313138/2676129
$(document).ajaxStart(function() {
$.mobile.loading('show');
});
$(document).ajaxStop(function() {
$.mobile.loading('hide');
});
どうすればこれを機能させることができますか? 私のajax呼び出しは、多数の.jsファイル(アプリのさまざまなセクション)で参照されています
助けてくれてどうもありがとう!
編集: 使用される ajax 呼び出しの例
$.ajax(
{
url: "http://myurl",
type: 'get',
dataType: 'jsonp',
success: function(data)
{
if (data.result == 'success')
{
var previousPageID = "";
var currentPageID = "";
$.each(data.data, function(key, data) //scans through each Lv1 Category, creates a button and page and links thems.
{
var divLabel = data.label;
var pageID = currentPageID + data.label.replace(/\s/g, "");
$('#contentPage').append(generateButtons(pageID, divLabel)); //generates a normal button for a category from CMS and generates the relevant page to link to.
var previousPageID = currentPageID;
generateNextPage(data, previousPageID);
});
$("#Page").trigger("create"); //once html is injected into home <div> applies jquery mobile styling and effects (enhance)
}
}
});