1
我有一個服務器操作,通常需要大約15分鐘才能完成。我希望在操作過程中向用戶傳達操作的各個階段。如何在非常長的服務器操作期間更新狀態標籤?
這裏是我的表單代碼:
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional" >
<ContentTemplate>
<asp:Timer ID="Timer1" runat="server" Interval="300" ontick="Timer1_Tick">
</asp:Timer>
<asp:Label ID="lbl_Status" runat="server" Text=""></asp:Label>
</ContentTemplate>
</asp:UpdatePanel>
</div>
<asp:FileUpload ID="upl_UserList" runat="server" />
<p>
<asp:Button ID="btn_Update" runat="server" Text="Update Users"
onclick="btn_Update_Click" />
</p>
</form>
...和我的Tick事件處理程序:
protected void Timer1_Tick(object sender, EventArgs e)
{
lbl_Status.Text = labelText;
lbl_Status.ForeColor = labelColor;
}
在用戶點擊更新按鈕時,瀏覽器將卡住等待服務器響應。這會導致標籤不能更新。
我應該如何解決這個問題,我應該使用iframe嗎?
嘗試將處理轉移到一個單獨的服務,15分鐘的過程中一個Web請求運行是一個壞主意。 – BNL
我認爲最終這將是一個不需要用戶輸入的自動化功能。現在我們使用一個控件來調試腳本。 – ZeroDivide