一般表單當送出後,需要執行比較長的時間,往往畫面留著,有些使用者等不及會再按看看,造成表單重複送出。其實這個問題可以用一個絕對位置的div搭配簡單的JavaScript就可以把表單遮蓋,讓等待的人按不到按鈕。

程式很簡單,先看一下畫面的部分:

    <div>
        測試
        <asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="divBlock.style.display='';" />
        <br />
        <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
    </div>
    <div id="divBlock" 
        style="border-style: solid; border-width: 1px; z-index: 1; position: absolute; top: 3px; left: 4px; height: 142px; width: 262px; background-color: #808080;filter: Alpha(Opacity=80);display:none;">
        <font color="yellow" size="7">處理中......</font>
    </div>

再來為了按了按鈕可以模擬執行較久,所以寫了個簡單的迴圈,讓她辛苦一點跑久一點

    Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim y As Integer
        Dim c As Integer = 0
        '跑一個比較久的迴圈
        For y = 0 To 1000000000
            c += 1
        Next
        Me.Label1.Text = c.ToString & "--" & Now.ToString
    End Sub

就這麼簡單,並且在ASP,PHP,JSP,...都可以用相同的技巧唷

^_^

posted on 2008-12-09 08:47  topcat  阅读(652)  评论(0编辑  收藏  举报