异步启动长时间运行的进程

2023-12-07

在我们的 Web 应用程序中,用户可以进行需要更新大量数据库表的更改。所有这些的加载时间最长可达 30 秒。我不希望用户在导航到另一个页面之前等待该操作完成。

我已将长时间运行的代码放在自己的页面上(例如“updateinfo.aspx”),并尝试了一些解决方案,包括对“updateinfo.aspx”的 jQuery AJAX 调用或加载调用“updateinfo.aspx”的图像文件。在所有情况下,当“updateinfo.aspx”执行时,我无法从启动 AJAX 调用的原始 HTML 页面导航到另一个 HTML 页面。 Chrome 表示对“updateinfo.aspx”的请求正在等待处理。当我单击链接以离开原始 HTML 页面时,我们会“等待 example.org...”,直到 AJAX 页面完成,然后导航到下一个 HTML 页面的请求将完成,新页面也会随之出现。负载。

因此,这违背了将长时间运行的代码放入 AJAX 页面的目的。用户的页面呈现速度很快,但在 AJAX 页面完成之前,他们无法通过导航到另一个页面来继续他们的一天。我不关心 AJAX 页面的输出。

有什么想法吗?


您不应该真正在网页上下文中执行长时间运行的进程;当客户端应用程序是 Web 浏览器时,HTTP 请求/响应模型不利于该概念。这是我不得不多次解决的一个场景;你可以: -

  1. 使用MSMQ;向队列提交一条消息,其中包含要执行的操作的详细信息,或者
  2. 将要执行的操作的详细信息写入“作业”表

然后,您可以创建一项 Windows 服务来从队列中读取消息/从表中一次提取一个未处理的项目,并执行长时间运行的操作。

在最近的项目中,我必须根据记忆执行此操作,我创建了一个位于标头(即母版页中)的用户控件,该控件每 15 秒通过 jQuery Ajax 轮询一次数据库表以检测作业何时完成,并且向用户显示一个弹出窗口,指示作业已完成。

我可以尝试在某处挖掘一些例子,但这些是主要的移动部分,这有帮助吗?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

异步启动长时间运行的进程 的相关文章

  • ASP .NET MVC 5 - 客户地址一对一关系

    我在这里查看了论坛 实际上发现了一些类似的问题 但不是相同的问题 类似的解决方案没有给我正确的答案 我正在使用实体框架和代码优先方法来处理 ASP NET MVC 5 我想建立客户 gt 地址一对一关系的模型 我建模的是 客户等级 publ
  • 第一次在更新面板中自动将文件上传到服务器不起作用

    要求 我正在尝试在用户选择文件后立即上传该文件 我必须满足以下要求 该按钮看起来与应用程序中的其他按钮类似 用户选择文件后就会上传该文件 我需要它位于 UpdatePanel 中 因为我必须对页面进行有条件的更新 我CAN对所选文件进行完整
  • 是否可以在 ApplicationServices DB 中对电子邮件地址进行加密?

    为了在我正在进行的项目中保持电子邮件地址的私密性 提高安全性 我希望对存储在数据库中的所有电子邮件进行加密 但是 我们使用的是 Asp Net Membership 提供程序 并且电子邮件以明文形式显示在表 aspnet Membershi
  • AJAX - 上传文件 (HTML5) 和 PHP

    我感觉完全超出了我的深度 但我感觉很接近 我正在尝试使用 AJAX 上传文件 我找到了这个教程http blog new bamboo co uk 2010 7 30 html5 powered ajax file uploads http
  • 如何为连接范围变量编写动态 where 子句

    我一直在使用 LINQ 进行查询 但遇到了动态 where 子句的问题 我想检查一个条件 如果为真 则将其添加到我的查询中 问题在于 where 正在使用我的连接之一中的范围变量之一 我的工作查询如下 var query from proj
  • Ajax 刷新后的事件监听器

    我的网站上有一个结帐部分 我在数量部分运行此事件侦听器 以便每次根据单击的产品更新数量时 整个 div 都会使用 AJAX 重新加载 因此所有价格 总金额也会刷新 该代码可以工作一次 但之后该功能就不再工作了 cart product qu
  • 使用 C# 将一些数据插入到多个表中

    我试图一次将一些数据插入到 2 个表中 但我的代码遇到的问题是 我一次只能插入一个表 如果我注释掉第一个插入语句 那么第二个插入将起作用 反之亦然 这是我的代码 SqlCommand cmd new SqlCommand select Na
  • Kendo UI 窗口闪烁旧内容

    使用 KendoUI 显示弹出窗口 我注意到如果我通过调用重用现有窗口refresh它会短暂显示旧内容 直到 AJAX 请求完成 My code function clickHandler evt evt preventDefault va
  • 为 ASP.NET MVC 实现自定义登录

    我是 ASP NET MVC 的新手 需要一些关于如何实现以下内容的建议 该站点是一个使用率很高的站点 内部 内联网 约有 200 个用户 我们使用表单身份验证来访问 SQL Server DB 不是 Windows 集成 有些操作受到保护
  • 在 ASP.NET MVC 3 应用程序中设置 ashx 处理程序的自动化规则

    我正在 MVC 3 应用程序中实现 javascript 文件上传功能 因此我需要使用 Http 处理程序 ashx 来允许大文件上传 现在我需要以某种方式禁止未经身份验证的用户调用处理程序的方法 如果我有一个控制器 我只需对其应用 Aut
  • 处理响应后使用 Amazon S3 响应流

    我正在使用 Amazon SDK 并且有一个方法可以为存储在 Amazon S3 服务中的对象返回 Stream 它包含这样的内容 var request new GetObjectRequest WithBucketName bucket
  • Img src 路径以及要传递的标头参数

    我在 jsp 页面中有一个 img 标记 其中 src 路径需要传递标头参数才能获取图像 我们怎样才能实现它呢 您现在可以使用fetch https developer mozilla org en US docs Web API Fetc
  • 运行实体框架自定义工具,它有什么作用?

    在 Visual Studio 中 当使用实体框架并为 tt 和 Context tt 文件应用运行自定义工具时 它是什么以及它有什么作用 为什么它解决数据库同步问题 有时 为什么我应该在运行 tt 之前运行它 Context tt 它被称
  • 使用客户端脚本处理 RadioButtonList

    我有一个 ASP RadioButtonList 我想在客户端处理它 该网页包含一个带有单选按钮组和关联的 GridView 的表单 当用户选择单选按钮之一时 我想隐藏或显示 GridView 上的行 这些行必须隐藏 而不是通过回发从数据集
  • ASP.NET web.config:system.web.compilation 中调试属性的默认值是什么?

    如果我不包括debug属性中的compilation像这样的元素
  • Windows 身份验证到底如何工作? web.config 似乎不够

    正在尝试修复 Windows 身份验证 目标 Windows 身份验证 使用 Firefox 时 应出现登录对话框 而使用 Internet Explorer 时 Windows 用户名和密码应自动转到 Web 服务器 我使用空模板建立了一
  • 动态多个延迟 jQuery Ajax 调用

    使用 jQuery 的延迟模式http api jquery com jQuery when http api jquery com jQuery when 我正在尝试进行多个 jsonp ajax 调用并等待结果 然后再进行下一步 我可以
  • ajax - 检查用户名是否存在+如果存在则返回消息

    我试图检查用户想要的用户名是否已被使用 而无需发送表单 基本上是用户名字段的模糊 我遇到了一些麻烦 有几个问题 我有我的输入字段加上js
  • Global.asax 错误处理程序或自定义 IHttpModule 错误处理程序未捕获未处理的异常

    我有一个类 DPCal EventMove 的一种方法 我想限制使用角色的访问 我有一个 Global asax cs 错误处理程序和一个自定义 IHttpModule 错误处理程序 旨在捕获未处理的异常 并将它们 Server Trans
  • ASP.NET 入口点?

    刚刚创建了一个空白的 ASP NET Web 应用程序 切入点在哪里 我看到 Default aspx 似乎是调用的默认模板 我猜 Site Master 充当布局文件 Global asax 似乎提供了一些用于事件处理的方法存根 然后是

随机推荐

  • 如何在 Firebase 实时数据库中将图像 URL 数组分组在一起? (迅速)

    我有以下代码 IBAction func postFinalButton sender Any while index lt ImagesOnClick count ProgressHUD show ProgressHUD animatio
  • 正则表达式 Javascript 使用量词捕获组不起作用

    我有这个很好的正则表达式 0 9 d days 0 9 h hours 0 9 m minutes 0 9 s seconds 这几乎与人类可读的时间增量相匹配 它适用于 php python 和 go 但由于某种原因 捕获组不适用于 ja
  • web.xml 中的 true

    请有人帮助我 当我将异步支持的标记放入 web xml 时 我收到此错误 cvc complex type 2 4 a 发现以元素 async supported 开头的无效内容 之一http java sun com xml ns jav
  • CSS 显示表格与普通 HTML 表格

    由于某种原因 我需要在我的 Web 应用程序中显示表格数据 但不使用本机 语义表 thead tbody th td 标签 我发现 CSS 属性使 html 元素 看起来 行为 像表格 http www quirksmode org css
  • RabbitMQ 队列可以有多个订阅者吗?

    我的 C 控制台应用程序中有以下超级代码 用于从 RabbitMQ 队列中排出消息 consumer new EventingBasicConsumer channel consumer Received o e gt onMessageR
  • FFmpeg - 连接视频错误,与相应的输出链接不匹配?

    我正在尝试使用 ffmpeg 将一些视频连接到一个视频中 输入信息 a mp4 1920x808 b mkv 1280x720 首先我尝试了下面的命令 它工作正常 ffmpeg i a mp4 i b mkv f lavfi t 0 1 i
  • 如何区分 Visual Studio 项目类型和现有 Visual Studio 项目

    使用 Visual Studio 2005 sln 或 vcproj 文件 或其他任何地方 中是否有任何定义项目类型 子类型的内容 编辑 我的意思是 当您创建项目时 首先选择一种语言 例如 Visual C 然后选择项目类型 例如 Wind
  • 使用 AJAX 和 JSONP 时未捕获的 SyntaxError 和 CORS 错误

    当我执行 AJAX 调用时 出现以下错误 未捕获的语法错误 意外的标记 但是 当我直接在浏览器中访问相同的 URL 时 我得到了预期的 JSON 响应 我做错了什么以及如何解决它 下面是我的 jQuery AJAX 请求 ajax type
  • LNK1104 无法打开文件“legacy_stdio_definitions.lib”

    我已将我的项目从 vs 2012 移植到 vs 2015 我正在使用的库也是从 vs 2015 构建的 我使用 makefile 构建项目并收到此错误 LNK1104 cannot open file legacy stdio defini
  • 如何在java swing应用程序中保留和删除多个图形对象?

    我有一个图像 我使用其上的预定义位置来创建带有颜色的图形对象 单击鼠标 我尝试在其上用颜色创建一些椭圆形 事实上我没能达到这个目的 因为 当我单击预定义位置时 我可以在其上创建一个椭圆形 但是当我单击另一个预定义位置时 第一个椭圆形消失了
  • 如何在 SQL Server 中将日期正确转换为 ISO-8601 周数格式?

    ISO 8601 规定周数的格式为YYYY W 请注意 周数应为两位数 如 01 02 SELECT cast DATEPART YYYY CreationDate as varchar W cast DATEPART ISO WEEK G
  • 使用 udev 更改 ttyUSB 权限

    我的程序需要访问ttyUSB没有root权限 我尝试用它来改变它chmod 777 dev ttyUSB0如您所知 当我重新启动时 此权限更改为默认值 我如何为此配置我的 udev Rules d 寻找ttyUSB in the rules
  • m2e无法从nexus传输元数据,但maven命令行可以

    我正在使用 nexus 来托管我的 Maven 存储库 并且 maven 命令行 win32 和 linux 可以使用相同的命令和相同的 settings xml 成功地从该 nexus 传输工件 但 m2e 会失败 如下所示 WARNIN
  • 表达式中上标和下标相同的字符

    在情节中 我想要一个标题 其中应该包含 字符串 my title is 后跟由 引发的 caharecter alpha 即 alpha prime alpha 也有下标 G I tried expression paste my titl
  • 通过Python使用refresh token完成Oauth2.0授权(Google API服务创建)

    我正在尝试使用 Oauth2 通过无头 Linux 服务器访问 Google API 服务 我通读了这篇文章的所有答案 如何在没有用户干预的情况下授权应用程序 网络或安装 但他们都没有展示如何使用刷新令牌来生成访问令牌python pinn
  • 雅虎财经API

    如何使用 YQL 获取雅虎财经股票代码的完整列表 不尝试获取单个股票报价 我正在尝试找到可用股票代码的完整列表 例如 所有股票代码均来自纽约证券交易所 纳斯达克 雅虎财经在这方面可能帮不了你太多 您可以从交易所获取所有股票代码 然后在雅虎财
  • 如何使用 PHP 来使用 JavaScript?

    设想 我使用创建了一个过滤IF ELSE当用户单击 BOX A 和 BOX B 然后假设 BOX A 已满 在用户点击 保存按钮 后 将显示一条确认消息 说明 您选择的盒子已经满了 您想保存其他物品吗 这是我的代码
  • 如何在 Powershell 中同时对多个服务器运行命令

    我正在寻找一种方法来同时重新启动多个服务器上的三个服务 我知道如何使用循环针对服务器列表重新启动服务 但由于我有许多服务器 因此需要很长时间才能等待每台服务器上的每个服务按顺序重新启动 有没有办法立即向所有服务器发送重新启动服务命令 而不是
  • Python:找出本地时区

    我想将日志文件中的 UTC 时间戳与本地时间戳进行比较 创建本地时datetime对象 我使用类似的东西 gt gt gt local time datetime datetime 2010 4 27 12 0 0 0 tzinfo pyt
  • 异步启动长时间运行的进程

    在我们的 Web 应用程序中 用户可以进行需要更新大量数据库表的更改 所有这些的加载时间最长可达 30 秒 我不希望用户在导航到另一个页面之前等待该操作完成 我已将长时间运行的代码放在自己的页面上 例如 updateinfo aspx 并尝