'';隐藏'';OnClick事件代码执行
本文关键字:执行 代码 隐藏 OnClick 事件 | 更新日期: 2023-09-27 18:25:30
当用户按下特定按钮时,我有相当长的代码需要执行。
protected void Post(object sender, EventArgs e)
{
//1) Code that processes submitted data
//2) Passess the processed data to SQL DB
//3) Receives data from DB
//4) Generates PDF
//5) Sends the PDF To User
Response.Redirect("~/SomePage.aspx");
}
然而,代码执行大约需要6秒,这是一段相当长的时间,并且在执行此代码时,屏幕上没有发生任何事情,只有在成功完成此事件(1-5)后才会发生重定向。
我想知道的是,是否有可能尽快将用户重定向到所需的网站并在后台处理数据
如果是,我需要使用什么?
提前谢谢。
您可以转到下一页,同时插入所有必要的数据作为页面参数。然后您可以在该页面上开始您的流程。进程可以在另一个线程中工作(请参阅任务/BackgroundWorker)
- PRO:用户会立即重定向到正确的页面
- CON:告诉用户操作成功与否需要额外的代码,如果过程失败会发生什么
你也可以使用一个等待的gif和文本,说明一个进程正在运行,并且在进程结束时仍然转到新页面(如在几个web应用程序银行等中使用的)
- PRO:出现错误时,用户可以通过单击按钮重复该过程,而不是重新输入表单值
- (来自TimSchmelter)程序员的工作量减少/客户的成本减少;更直观
- CON:用户没有立即重定向
Thread obj = new Thread(
new ThreadStart(new ThreadStart(() => VoidFuncName(...parameters....)));
obj.IsBackground = true;
obj.Start();
Response.Redirect("~/someaspxsite.aspx");
这是我用过的。它创建了一个执行代码的新线程。工作完美无瑕。