ページの読み込み中に読み込み中のメッセージや画像を表示するにはどうすればよいですか?
たとえば、アイテムを追加するためのボタンをクリックすると、読み込みが完了するまでに時間がかかりますが、読み込み中はページがアクティブになります。私が欲しいのは、ページの中央に小さなローダーが表示され、そのページが非アクティブになることです。ページの読み込みが完了すると、ローダーがなくなり、ページがアクティブになります。
ASP.NETWebフォームを使用していると仮定します
UpdatePanel
コントロールに関連付けられたものを簡単に使用できますUpdateProgress
。
UpdatePanelを使用すると、非同期を使用してサーバーと対話できます。UpdateProgressコントロールを追加し、それをUpdatePanelとリンクして、読み込みの進行中に何か(Gif、Text、..)を表示することができます。
詳細については、こちらをご覧ください
Asp.net MVCを使用している場合は、このSOの質問のようにAjaxを使用して同じトリックを実行する必要があります。
これは私が試したものです。これにはYUIを使用し、ボタンがクリックされたときにコードにパネルを追加しました。
var ANIM_LOAD = YAHOO.namespace("anim_load");
ON button_onClick()
{
StartInitialLoadingPanel("Loading");
}
StartInitialLoadingPanel(msgStrng)
{
if (!TAB_COLLECTION.wait) {
// Initialize the temporary Panel to display while waiting for external content to load
TAB_COLLECTION.wait = new YAHOO.widget.Panel("wait",
{ width: "400px",
x: window.screen.center,
fixedcenter: true,
close: false,
draggable: false,
zindex:1000,
modal: true,
visible: true
}
);
TAB_COLLECTION.wait.setHeader(msgStr);
TAB_COLLECTION.wait.setBody("<img src='../Images/loading_animation'>");
TAB_COLLECTION.wait.render(document.body);
}
// Show the Panel
TAB_COLLECTION.wait.show();
}
背景が正常に実行されたら、アニメーションを停止するためのメソッドを次のように呼び出すことができます。
function CancelInitialLoadPanel()
{
//Hide the Panel
if (TAB_COLLECTION.wait)
{
TAB_COLLECTION.wait.hide();
}
}
あなたがここで見ることができるより多くの詳細をありがとう
同様の問題の2つのリンクがあります。ページ全体をレンダリングするのにかかる期間を管理する方法がわかりませんが、これは始まりかもしれません。
ページ全体の読み込みプロセスを非表示にするためのページ読み込みアニメーションは、フェードアウトする必要があるずっと前に終了します
これは、ページのレンダリング中にタイマーコントロール DisplayAjaxLoaderを使用するものです
$(document).ready(function(){
$('body').append('<div id="loading"><img src="core/design/img/load/load.gif" /></div>');
});
$(window).load(function(){
$('#loading').fadeOut(600, function(){
$("#wrap").fadeIn(1000);
$("#footer").fadeIn(1000);
});
});