问题标签 [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.
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 the
Task`,如下所示:
这捕获了OperationCanceledException
方法中的罚款并打印了我的消息,但在上面DuplicateSqlProcsFrom
提供的回调中总是; 应该取消!asyncDupSqlProcs.ContinueWith(task => { ... });
task.Status
RanToCompletion
Cancel()
在这种情况下,捕获和处理任务的正确方法是什么。我知道在CodeProject和MSDN 上的示例中显示的简单案例中这是如何完成的,但是在运行延续时我在这种情况下感到困惑。
在这种情况下如何捕获取消任务以及如何确保task.Status
正确处理?
javascript - 取消ajax请求:handler还能被执行吗
在JavaScript 是否保证是单线程的? 很明显,尽管 javascript 是单线程的,但仍有一些警告。
我想知道以下伪代码是否总是可预测的(我正在“使用”jQuery)
这种情况可能是在单击事件和中止之间,来自服务器的数据通过并在 de eventqueue 上放置了一个事件。如果这发生在中止之前,将触发 ajax post 的 succes 事件。我不知道如何真正测试这种可能的竞争条件。
有谁知道这是如何工作的?或者如何用一个准备好的例子来测试这个?
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?
c# - 取消单击链接上的请求 asp.net
我在网站(ASP.NET 4.0 C#)上有一个主页,每次访问时都会加载大量数据(基本上是仪表板)。这可能(取决于用户)需要一段时间来加载,所以我将每个部分分成更新面板并分别加载它们,以便用户可以看到它正在加载,而不仅仅是认为页面已冻结。然而,这带来了新的问题,因为如果用户不想等待并点击导航菜单(或链接)到不同的页面,他们必须等到页面完全加载后才能继续。
如果单击另一个链接并仅处理该链接,是否有停止页面请求加载数据的方法?
更多信息 - 我正在使用导航菜单所在的母版页,以及主页上的 ajax 更新面板。
.net - BinaryReader.ReadByte() 没有超时
我有一个互联网流,我正在从中创建阅读器
之后我正在读取字节以搜索“同步字”
但有时我有一个问题ReadByte()
。我预计如果阅读器无法从流中读取字节,它会抛出异常,但不会抛出任何东西。(服务器没有关闭,只是不提供字节)。
所以我的问题是-如何使这种方法超时?我可以将 TPL 与 CancellationToken 一起使用,但不明白如何在需要时取消方法 ReadByte。
android - Android:如何取消/中断同步服务调用?
对于 Application 对象,我调用bindService()
. onServiceConnected()
回调接收一个IBinder
对象,我把它交给一个AsyncTask
.
在那里,我通过调用并使用此服务对象ServiceClass.Stub.asInterface(iBinderObject)
调用一些方法来获取我的服务对象。
这是一种同步方法,我无法影响服务的超时设置(谁知道它的超时实现是否可靠)。所以,事先,我postDelayed()
在一个单独的线程上拥有自己的超时处理程序。
超时代码调用unbindService()
以解除应用程序与服务的绑定并产生超时结果。
如果超时先运行,我还没有找到中断服务调用的方法。对此unbindService()
没有明显的影响。呼叫AsyncTask.cancel(true)
也不会改变任何事情。该IBinder
对象似乎没有提供任何可能有帮助的明显方法。
我观察到的是AsyncTask
一直在等待服务调用返回,这可能会AsyncTask
显着延迟下一个标准的开始Executor
。
有什么经验吗?想法?
node.js - 在强大的节点中取消文件上传时出错
我正在使用 Formiable-node 来上传文件。尝试取消上传时出现以下错误。
我的代码如下所示。
我也在使用https://github.com/blueimp/jQuery-File-Upload/blob/master/index.html ,它使用强大的后端之一。
谢谢。
google-drive-api - 谷歌驱动SDK:取消上传
如何取消文件上传请求Google Drive SDK
?
我正在创建调用的 .NET 4 任务
我不能在这里使用取消令牌来取消我的任务,我也找不到任何取消请求的方法。我应该如何停止上传过程?\
更新
你好?有没有人?
php - 使用重定向到页面,页面被取消然后被调用,手动调用页面工作而不会首先被取消
我会尽量简短地解释这一点。当客户从 iDeal(荷兰在线支付方式,例如 PayPal)返回我们的网站(我们称之为页面 A)时,网站会处理一些事情(更新数据库、创建发票等)。我还必须向处理财务事务的程序发出 SOAPclient 请求。
奇怪的是,第一次尝试访问此页面 A,页面被取消(如我在 chrome 中的网络选项卡中所见),然后再次调用它,这一次它可以工作。这不是一个真正的问题,但它现在会发送两次电子邮件。
我觉得奇怪的是,我在不同的页面(页面 B)中也有完全相同的代码,它是用 cronjob 调用的。在页面 B 中工作正常。此外,如果我手动调用页面 A(所以没有重定向,但如果我在浏览器中键入 url),它也可以工作。
这是我的代码:(由该金融计划提供给我。)
所以我的问题是:为什么我的页面 A 被取消了?我绝对确定这是 SOAPclient 调用,因为当我注释掉该部分时,它工作正常。这是 SOAPclient 问题还是什么?
我可以做一个解决方法,但如果我能找出为什么页面 A 第一次被取消会更好。
编辑:这是我的控制台显示的
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 方法有关...?