當預期後端 Server 的處理時間會很久時,總是希望讓使用者知道系統還活著,只是正在處理中。這時,就會希望有個「遮罩」效果,讓背景呈現灰階、甚至放一個動態 .gif 圖檔來表示。
網路上蠻多推薦 BlockUI 的文章,自己實際去練習,發現還蠻容易上手的。
首先,必須先把會用到的 .js 抓回來。 ( jQuery, BlockUI )
然後在網頁上引用他們。
<script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
<script src="Scripts/jquery.blockUI.js" type="text/javascript"></script>
而使用 BlockUI 的方法則是:
$.blockUI({ message: '<div>處理中! </div>' });
不過,為了讓等待時不枯燥無聊,所以另外放了一個會動的 .gif 圖檔。可以到 ajaxload 去客製化自己喜歡的動態圖檔再下載使用。
完整程式如下:
Test.aspx
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
<script src="Scripts/jquery.blockUI.js" type="text/javascript"></script>
<style>
.divAlert
{
color:Red;
font-size:18px;
line-height:25px;
vertical-align:middle;
}
</style>
<script>
$(function () {
$("input[id$=btn01]").click(function () {
$.blockUI({ message: '<div class="divAlert">處理中! <img width="20px" src="./images/loader-red.gif"></img></div>' });
});
});
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Button ID="btn01" runat="server" Text="點選" onclick="btn01_Click" />
</div>
</form>
</body>
</html>
Test.aspx.cs
using System.Threading;
protected void btn01_Click(object sender, EventArgs e)
{
//讓程式跑久一點... 5 秒
Thread.Sleep(5000);
}
參考:
01:ajaxload
02:BlockUI Plugin - 功能完善的頁面、訊息遮罩
03:使用 jQuery 的blockUI 顯示 讀取中

沒有留言:
張貼留言