'';隐藏'';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)后才会发生重定向。

我想知道的是,是否有可能尽快将用户重定向到所需的网站并在后台处理数据

如果是,我需要使用什么?

提前谢谢。

'';隐藏'';OnClick事件代码执行

您可以转到下一页,同时插入所有必要的数据作为页面参数。然后您可以在该页面上开始您的流程。进程可以在另一个线程中工作(请参阅任务/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");

这是我用过的。它创建了一个执行代码的新线程。工作完美无瑕。