頁面提交時,顯示“提交中”等待效果


由於web開發的特點,有的時候提交數據量較大或者計算量較大的頁面,需要等待很長時間,整個頁面都刷新成白的啦,給人的感覺很不舒服,有的時候提交后,頁面反應慢,用戶以為沒有提交成功,所以又提交一次,從而造成重復提交的情況,所以需要一種簡單的“提交中”的特效,此時頁面上的其他東西不允許點擊,鼠標變成漏斗狀,通過這可以避免重復提交。

實現方式,頁面源代碼:

頁面源碼
 <div id="running" runat="server" style="z-index: 12000; left: 0px; width: 100%; cursor: wait;
        position: absolute; top: 0px; height: 100%;">
        <table width="100%" height="100%">
            <tr align="center" valign="middle">
                <td>
                    <table width="200px" height="200px" bgcolor="gray" style="filter: Aplpa(Opacity=70);
                        color: White;">
                        <tr align="center" valign="middle">
                            <td>
                                <div id="Clocktimes">
                                </div>
                                <br />
                                正在提交<br />
                                請稍后.....
                            </td>
                        </tr>
                    </table>
                </td>
            </tr>
        </table>
    </div>
    <%--<input id="btnOk" value="提交" onclick="btnClick()" type="button" />--%>
    <asp:Button ID="btnOk" runat="server" Text="提交" onclick="btnOk_Click"  />

js代碼

js
 1 <script language="javascript" type="text/javascript">
 2         var time = 0;
 3         function tick() {
 4             time = time + 1;
 5             var min = Math.floor(time / 60);
 6             var second = time - min * 60;
 7             document.getElementById("Clocktimes").innerHTML = min + "" + second + "";
 8         }
 9         function btnClick() {
10             document.getElementById("running").style.visibility = "visible";
11             window.setInterval('tick()', 1000);
12             return false;
13         }
14     </script>

后台代碼

后台
 1  protected void Page_Load(object sender, EventArgs e)
 2     {
 3         if (!IsPostBack)
 4         {
 5             this.btnOk.Attributes.Add("onclick", "javascript:document.getElementById('running').style.visibility='visible';window.setInterval('tick()',1000);");
 6         }
 7     }
 8     protected void btnOk_Click(object sender, EventArgs e)
 9     {
10         Thread.Sleep(9000);
11     }
12     protected override void OnPreRenderComplete(EventArgs e)
13     {
14         running.Style.Add("visibility", "hidden");
15         //base.OnPreRenderComplete(e);
16     }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM