長いASP.NETページ読み込みプロセスがあります。
ASP.NETページの読み込み中に読み込みgifを表示する方法はありますか?
当然、ページ自体に画像を使用することはできません。「Loading ...」画像を使用して「ダミーページ」を最初にロードすると、ユーザーを実際のページにリダイレクトするとすぐに、そのページは破棄されます。 。
どんな手掛かり?ありがとう
これには、次のようにUpdateProgressコントロールを使用できます。
<asp:UpdateProgress ID="prgLoadingStatus" runat="server" DynamicLayout="true">
<ProgressTemplate>
<div id="overlay">
<div id="modalprogress">
<div id="theprogress">
<asp:Image ID="imgWaitIcon" runat="server" ImageAlign="AbsMiddle" ImageUrl="/images/wait.gif" />
Please wait...
</div>
</div>
</div>
</ProgressTemplate>
</asp:UpdateProgress>
半透明にする場合は、次のスタイルを使用できます。
#overlay {
position: fixed;
z-index: 99;
top: 0px;
left: 0px;
background-color: #f8f8f8;
width: 100%;
height: 100%;
filter: Alpha(Opacity=90);
opacity: 0.9;
-moz-opacity: 0.9;
}
#theprogress {
background-color: #fff;
border:1px solid #ccc;
padding:10px;
width: 300px;
height: 30px;
line-height:30px;
text-align: center;
filter: Alpha(Opacity=100);
opacity: 1;
-moz-opacity: 1;
}
#modalprogress {
position: absolute;
top: 40%;
left: 50%;
margin: -11px 0 0 -150px;
color: #990000;
font-weight:bold;
font-size:14px;
}
私の同様の質問をご覧ください jQueryまたはAJAXを使用した「お待ちください」メッセージ :
ASPXページがロードされている間、Webブラウザーの現在のページにとどまります。したがって、新しいページが読み込まれていることがわかったとき(つまり、ボタンまたはリンクが押されたとき)、「読み込み中」の画像を表示するだけで、クライアントが「新しい」ページの受信を完了すると自動的に非表示になります(実際のページであるかどうかにかかわらず)新しいページまたは投稿された同じページ)。
送信ボタンがクリックされたときに(div
に含まれる)ロード画像を自動的に表示するために使用できるコード例は次のとおりです。
$(':submit').click(function() {
$('#divLoading').show();
});
または、AjaxツールキットまたはASP.NET 4.0に含まれるUpdatePanel
を使用することもできます。読み込み中の画像を自動的に表示するUpdateProgress
というコントロールがあります。
編集:
最初のページが読み込まれる前に「読み込み中」の画像を表示する必要があると思います。この場合、マスターページのコンテンツをUpdatePanel
にラップして、画像を自動的に表示するプログレスローダーコントロールを使用します(どちらもAjax ToolkitまたはASP.NET 4.0)、およびページの実質的な(非マスターページ)コンテンツをロードしますafterUpdatePanel
で初期ページをロードします。
これを行うには、コンテンツページの本文をPanel
内に配置し、パネルの表示設定をFalse
に設定し、ページの読み込み後にパネルをTrue
に設定します。
UpdateProgress
コントロールのマークアップは次のとおりです。もちろん、スタイルを設定して、適切な領域に配置する必要があります。
<asp:UpdateProgress ID="upgLoad" DynamicLayout="true" runat="server">
<ProgressTemplate>
<div id="theprogress">
<img src="images/loading.gif" />
<span>Loading</span>
</div>
</ProgressTemplate>
</asp:UpdateProgress>
編集:
UpdatePanel
およびUpdateProgress
コントロールを使用しない場合は、次の操作を行います。
Panel
というpnlContent
に配置し、パネルの可視性をFalse
に設定します。img
とロード画像を作成し、visibilityをPanel
に設定して、pnlLoading
という名前の別のTrue
に配置します。読み込まれるとすぐにページを強制的に再読み込みするクライアント側スクリプトを配置します。このスクリプトをpnlLoading
内に配置します。 Update:以下の#3コードをASPXページに挿入してパネルを作成すると、すぐに投稿がトリガーされます。
次の#4コードをPage_Load
に追加します。
コード:
#3の場合]
<asp:Panel runat="server" ID="pnlLoading">
<!-- Replace "form1" with your form's name. -->
<script type="text/javascript">form1.submit()</script>
<img src="images/loading.gif" alt="Loading" />
<span>Loading</span>
</asp:Panel>
#4の場合
if (Page.IsPostBack())
{
pnlLoading.Visible = false;
pnlContent.Visible = true;
}
これにより、実際のページコンテンツが読み込まれている間、読み込み中の画像が表示されます。
次の解決策は、現在のAjax化やサイト構造に影響を与えることなく、ページナビゲーション間でうまく機能することがわかりました。
スクリプトをno-mans-land betweenのマスターページのヘッドエンドタグとボディスタートタグにドロップするだけです。
これを提供してくれたSubinに感謝します。
http://subinsb.com/loading-bar-until-page-loads-completely-using-javascript
<script>
subinsblogla=0;
setInterval(function(){
if(document.readyState!='complete'){
document.documentElement.style.overflow="hidden";
var subinsblog=document.createElement("div");
subinsblog.id="subinsblogldiv";
var polu=99*99*99999999*999999999;
subinsblog.style.zIndex=polu;
subinsblog.style.background="black url(https://lh4.googleusercontent.com/-4WVJgCO93zc/UgpU2Y60CjI/AAAAAAAAC8E/R3XujnTjz3Y/s474/initializing.png) 50% 50% no-repeat";
subinsblog.style.backgroundPositionX="50%";
subinsblog.style.backgroundPositionY="50%";
subinsblog.style.position="absolute";
subinsblog.style.right="0px";
subinsblog.style.left="0px";
subinsblog.style.top="0px";
subinsblog.style.bottom="0px";
if(subinsblogla==0){
document.documentElement.appendChild(subinsblog);
subinsblogla=1;
}
}else if(document.getElementById('subinsblogldiv')!=null){
document.getElementById('subinsblogldiv').style.display="none";
document.documentElement.style.overflow="auto";
}
},1000);
</script>
そのような他の変数があり、コードが機能しない可能性があるので、変数名を置き換えないことをお勧めします。ロード画像を変更したい場合は、変数subinsblog.style.backgroundの背景URLを変更してください。