问题标签 [request-cancelling]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3095 浏览

c# - 如何正确取消 TPL 任务并继续

我有一个长时间运行的操作,我正在使用 TPL 将其放在后台线程上。AggregateException我目前的工作是什么,但我对在取消请求期间应该在哪里处理我感到困惑。

在按钮单击事件中,我开始我的过程:

DuplicateSqlProcsFrom(CancellationToken _token, SqlConnection masterConn, string _strDatabaseA, string _strDatabaseB, bool _bCopyStoredProcs = true, bool _bCopyFuncs = true)我的方法中

在按钮 Click 事件中(或使用delegate(buttonCancel.Click += delegate { / Cancel the Task / } ) I cancel theTask`,如下所示:

这捕获了OperationCanceledException方法中的罚款并打印了我的消息,但在上面DuplicateSqlProcsFrom提供的回调中总是; 应该取消!asyncDupSqlProcs.ContinueWith(task => { ... });task.StatusRanToCompletion

Cancel()在这种情况下,捕获和处理任务的正确方法是什么。我知道在CodeProjectMSDN 上的示例中显示的简单案例中这是如何完成的,但是在运行延续时我在这种情况下感到困惑。

在这种情况下如何捕获取消任务以及如何确保task.Status正确处理?

0 投票
2 回答
238 浏览

javascript - 取消ajax请求:handler还能被执行吗

JavaScript 是否保证是单线程的? 很明显,尽管 javascript 是单线程的,但仍有一些警告。

我想知道以下伪代码是否总是可预测的(我正在“使用”jQuery)

这种情况可能是在单击事件和中止之间,来自服务器的数据通过并在 de eventqueue 上放置了一个事件。如果这发生在中止之前,将触发 ajax post 的 succes 事件。我不知道如何真正测试这种可能的竞争条件。

有谁知道这是如何工作的?或者如何用一个准备好的例子来测试这个?

0 投票
0 回答
1253 浏览

http - How do I abort or stop an http request in NodeJs

While NodeJs architecture does very well to process server requests in a non-blocking way, it is sometimes required to stop/abort a request being processed at the server side.

How can I get my NodeJs server to abort a request even when it's not blocking the server?

0 投票
1 回答
1512 浏览

c# - 取消单击链接上的请求 asp.net

我在网站(ASP.NET 4.0 C#)上有一个主页,每次访问时都会加载大量数据(基本上是仪表板)。这可能(取决于用户)需要一段时间来加载,所以我将每个部分分成更新面板并分别加载它们,以便用户可以看到它正在加载,而不仅仅是认为页面已冻结。然而,这带来了新的问题,因为如果用户不想等待并点击导航菜单(或链接)到不同的页面,他们必须等到页面完全加载后才能继续。

如果单击另一个链接并仅处理该链接,是否有停止页面请求加载数据的方法?

更多信息 - 我正在使用导航菜单所在的母版页,以及主页上的 ajax 更新面板。

0 投票
1 回答
946 浏览

.net - BinaryReader.ReadByte() 没有超时

我有一个互联网流,我正在从中创建阅读器

之后我正在读取字节以搜索“同步字”

但有时我有一个问题ReadByte()。我预计如果阅读器无法从流中读取字节,它会抛出异常,但不会抛出任何东西。(服务器没有关闭,只是不提供字节)。

所以我的问题是-如何使这种方法超时?我可以将 TPL 与 CancellationToken 一起使用,但不明白如何在需要时取消方法 ReadByte。

0 投票
1 回答
933 浏览

android - Android:如何取消/中断同步服务调用?

对于 Application 对象,我调用bindService(). onServiceConnected()回调接收一个IBinder对象,我把它交给一个AsyncTask.

在那里,我通过调用并使用此服务对象ServiceClass.Stub.asInterface(iBinderObject)调用一些方法来获取我的服务对象。

这是一种同步方法,我无法影响服务的超时设置(谁知道它的超时实现是否可靠)。所以,事先,我postDelayed()在一个单独的线程上拥有自己的超时处理程序。

超时代码调用unbindService()以解除应用程序与服务的绑定并产生超时结果。

如果超时先运行,我还没有找到中断服务调用的方法。对此unbindService()没有明显的影响。呼叫AsyncTask.cancel(true)也不会改变任何事情。该IBinder对象似乎没有提供任何可能有帮助的明显方法。

我观察到的是AsyncTask一直在等待服务调用返回,这可能会AsyncTask显着延迟下一个标准的开始Executor

有什么经验吗?想法?

0 投票
0 回答
179 浏览

node.js - 在强大的节点中取消文件上传时出错

我正在使用 Formiable-node 来上传文件。尝试取消上传时出现以下错误。

我的代码如下所示。

我也在使用https://github.com/blueimp/jQuery-File-Upload/blob/master/index.html ,它使用强大的后端之一。

谢谢。

0 投票
1 回答
1411 浏览

google-drive-api - 谷歌驱动SDK:取消上传

如何取消文件上传请求Google Drive SDK

我正在创建调用的 .NET 4 任务

我不能在这里使用取消令牌来取消我的任务,我也找不到任何取消请求的方法。我应该如何停止上传过程?\

更新

你好?有没有人?

0 投票
0 回答
90 浏览

php - 使用重定向到页面,页面被取消然后被调用,手动调用页面工作而不会首先被取消

我会尽量简短地解释这一点。当客户从 iDeal(荷兰在线支付方式,例如 PayPal)返回我们的网站(我们称之为页面 A)时,网站会处理一些事情(更新数据库、创建发票等)。我还必须向处理财务事务的程序发出 SOAPclient 请求。

奇怪的是,第一次尝试访问此页面 A,页面被取消(如我在 chrome 中的网络选项卡中所见),然后再次调用它,这一次它可以工作。这不是一个真正的问题,但它现在会发送两次电子邮件。

我觉得奇怪的是,我在不同的页面(页面 B)中也有完全相同的代码,它是用 cronjob 调用的。在页面 B 中工作正常。此外,如果我手动调用页面 A(所以没有重定向,但如果我在浏览器中键入 url),它也可以工作。

这是我的代码:(由该金融计划提供给我。)

所以我的问题是:为什么我的页面 A 被取消了?我绝对确定这是 SOAPclient 调用,因为当我注释掉该部分时,它工作正常。这是 SOAPclient 问题还是什么?

我可以做一个解决方法,但如果我能找出为什么页面 A 第一次被取消会更好。

编辑:这是我的控制台显示的 在此处输入图像描述

0 投票
0 回答
1279 浏览

file-upload - 剑道上传取消出了什么问题?

我看到剑道 UI 发生了一件非常奇怪的事情kendoUpload。我已经实现了一个自定义 UI 来显示正在上传的文件,以及一个进度条和一个取消按钮。Kendo 不提供用于取消上传的 API,但我在这里读到,您可以点击 kendo 的默认上传进度显示来取消上传。这正是我所做的,在我的自定义取消按钮上附加了以下 javascript 函数:

这个小功能在触发kendoUpload' 取消事件时起作用,并且网络流量停止,因此数据显然不再从浏览器发送到服务器。

但是,只要单击一个取消按钮,从单击取消按钮的浏览器对站点的任何后续请求都会永远挂起。请注意,这适用于整个网站,而不仅仅是文件上传页面,而且仅适用于相关浏览器——该网站仍会在未点击上传取消按钮的其他浏览器中加载。这适用于 Chrome 30.0.1599.69 m、Firefox 20.0 和 IE8。

使用 Firefox 和 IE,只需关闭并重新启动浏览器即可停止挂起,并再次加载站点。使用 Chrome,我发现这不起作用,注销我的本地计算机也不起作用——我必须完全重新启动才能让网站在 Chrome 中再次加载。我认为这可能与我的 Chrome 设置有关。我已将其设置为在重新打开时加载我最后的所有选项卡,并且我注意到关闭和重新打开 Chrome 也不会删除我的网站登录 cookie。无论哪种方式,即使在 Chrome 中更难重置也是同样的问题。

所以......有什么想法吗?似乎浏览器仍在等待来自服务器的响应以取消上传并阻塞整个站点,等待永远不会传递的响应。

更新

事实证明我对 Chrome 的看法是正确的。禁用“从上次中断的地方继续”启动选项后,Chrome 现在的行为与 FF 和 IE 相同——需要关闭并重新打开浏览器才能再次加载网站。

showFileList: false我也在没有自定义 UI 的情况下尝试过这个,这意味着我在创建小部件时关闭并单击了实际的取消按钮。开始怀疑这是否与服务器上的 POST 方法有关...?