标签: request-cancelling

在"ESC"上取消了通过AJAX调用的PHP进程吗?

如果我进行AJAX调用,如果用户按下"ESC"或离开该页面,是否会取消AJAX调用?

如果AJAX调用被取消,我的PHP脚本是否会继续运行,直到它完成它正在进行的操作(如果没有达到时间限制或任何其他服务器配置停止.),或者该进程会在同一时间被杀死它属于哪个Apache的孩子?

如果这个过程确实被Apache孩子杀死了,即使它没有完成,那么保持生命的最佳方法是什么,或者我应该考虑其他什么选择?(ZendX_Console_Process_Unix不是一个选项).

谢谢!

后来的发现:

如果我在Firefox中点击"ESC"(在firebug中检查),AJAX调用实际上会被取消.PHP进程继续,不受命中ESC或关闭选项卡的影响.

php ajax background-process request-cancelling

5
推荐指数
1
解决办法
912
查看次数

如何判断用户在从 Java servlet 下载过程中是否点击了取消?

如何判断用户在从 Java servlet 下载过程中是否点击了取消?我用 IE 似乎会发生什么,输出流 println() 块。使用过的点击取消,但有没有办法让它超时或类似的东西?

java servlets download request-cancelling

5
推荐指数
1
解决办法
2782
查看次数

如何取消深层嵌套的进程

我有一个类是"经理"类.其中一个功能是发出应该关闭该类的长时间运行过程的信号.它通过在类中设置一个名为"IsStopping"的布尔值来实现.

public class Foo
{
    bool isStoping

    void DoWork() {
        while (!isStopping)
        {
            // do work...
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,DoWork()是一个巨大的功能,我决定重构它,并且作为该过程的一部分,将其中的一部分打破到其他类中.问题是,这些类中的一些还具有长时间运行的函数,需要检查isStopping是否为真.

public class Foo
{
    bool isStoping

    void DoWork() {
        while (!isStopping)
        {
            MoreWork mw = new MoreWork()
            mw.DoMoreWork() // possibly long running
            // do work...
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我有什么选择?

我已经考虑通过引用传递isStopping,我不喜欢它,因为它需要有一个外部对象.我宁愿让额外的课程尽可能独立和免费.

我还考虑过使用isStopping属性,然后让它调用一个内部类可以订阅的事件,但这看起来过于复杂.

另一种选择是创建一个"进程取消令牌"类,类似于.net 4 Tasks使用的类,然后将该令牌传递给这些类.

你是怎么处理这种情况的?

编辑:

还要考虑MoreWork可能有一个实例化的EvenMoreWork对象,并在...上调用可能长时间运行的方法.我想我正在寻找的是一种方法,能够在调用树下发出任意数量的对象信号,告诉他们停止他们正在做的事情并清理和返回.

EDIT2:

感谢到目前为止的回复.似乎对使用的方法没有真正的共识,每个人都有不同的意见.看起来这应该是一种设计模式......

c# oop refactoring request-cancelling

4
推荐指数
1
解决办法
393
查看次数

Axios 取消令牌取消每个请求

我尝试实现cancelToken API,以便每当我向服务器发出请求以获取每次击键的结果时,只有最后一个请求应该得到处理,但是我已经实现了axios取消令牌API,它似乎取消了每个请求,我在这里做错了什么?每次击键时都会调用此函数。

getProductLists2 = async () => {


        let formData = new FormData()

        const { start, limit } = this.state

        formData.append('start', start)
        formData.append('limit', limit)

        formData.append('product_title', this.state.searchTitle)
        formData.append('product_sku', this.state.searchSKU)

        let cancel;

        Axios({
            method: 'POST',
            url: BASE_URL + '/listProduct',
            // headers: { 'Content-Type': 'multipart/form-data' },
            data: formData,
            cancelToken: new Axios.CancelToken(c => cancel = c)
        })
            .then(products => {
                if (products && products.data.productList && products.data.productList.length > 0) {
                    this.setState({ productList: products.data.productList, totalProducts: products.data.productTotal })
                }
            })
            .catch(err => toast.error('Something went wrong'))
        console.log(cancel, 'h') …
Run Code Online (Sandbox Code Playgroud)

request-cancelling cancellationtokensource reactjs cancellation-token axios

4
推荐指数
1
解决办法
4275
查看次数

未处理的拒绝(AbortError):操作被中止

编辑:仅在 Firefox 中反应应用程序崩溃。当我使用 chrome 时,反应应用程序不会崩溃。如何处理 Firefox 中的崩溃问题?

我想在组件卸载时取消http请求。我使用 fetch() 和 AbortController。

我正在遵循本指南

但是当组件卸载时,反应应用程序崩溃。

在此输入图像描述

这是我的代码:

import React, { useEffect, useState } from 'react'
import AbortController from "abort-controller"

function Label(){
  const abortController = new AbortController()
  const signal = abortController.signal
  const [labels, setLabels] = useState([])

    useEffect(() => {
      async function getLabels(){
          const req = await fetch(`${process.env.REACT_APP_SERVER_URL}/label`, {
              credentials: 'include',
              signal: signal
          })
          const res = await req.json()
        
          setLabels(res.data)
      }
    
      getLabels()
    
      // cancel httprequest if component unmounted
      return function cancel(){
          abortController.abort()
      } …
Run Code Online (Sandbox Code Playgroud)

fetch request-cancelling reactjs

4
推荐指数
1
解决办法
1万
查看次数

Java线程:关闭标志与捕获异常

在处理取消时的线程中,您经常会看到这样的代码

while (!shutdown) {
  .. do something, if a blocking call, then it will throw the interrupted exception
  try { .. some more ... } 
  catch (InterruptedException e) { 
    shutdown = true; 
  }
}
Run Code Online (Sandbox Code Playgroud)

我想知道的是,这是为什么,或者为什么这样做,比这更好

try {
  while (true) {
    .. do something, if a blocking call, then it will throw the interrupted exception
    if (Thread.interrupted()) throw new InterruptedException();
  }
} catch (InterruptedException e) {
  .. clean up, let thread end
}
Run Code Online (Sandbox Code Playgroud)

我看到它的方式是,在后一种情况下,你根本不需要打扰关闭var.

java multithreading request-cancelling

3
推荐指数
1
解决办法
1162
查看次数

具有重叠I/O的TCP连接

是否可以使用重叠的I/O启动TCP连接请求,并在Windows中完成连接之前取消它?我需要至少支持Windows XP SP2.

winapi tcp winsock request-cancelling overlapped-io

3
推荐指数
1
解决办法
2033
查看次数

在线程中取消BackgroundWorker

我使用BackgroundWorker和C#进行了更长时间的多步骤过程.我需要确保每个步骤都已成功完成,然后再继续下一步.我已经看到许多引用让BackgroundWorker捕获错误并取消单击"取消"按钮,但我想自己检查错误然后优雅地结束该过程.我是否像点击取消按钮那样对待它,还是有另一种方式?

c# backgroundworker request-cancelling

2
推荐指数
1
解决办法
748
查看次数

使用 CancellationToke 添加作用域依赖项

我有一个 .NET 核心依赖项,其范围仅限于每个 REST API 请求。它是Startup.ConfigureServices通过调用添加的AddScoped

我想为此添加取消支持。如果我将 a 添加CancellationToken cancellationToken到任何控制器操作的参数中,我可以获得一个在客户端请求被取消时被取消的令牌。然后我可以将该令牌传递给我的依赖项上的所有方法。

但是,依赖关系的范围仅限于请求,因此通过操作将令牌传递给方法感觉没有必要 - 我可以以CancellationToken某种方式将其添加到范围依赖关系中吗?

c# dependency-injection request-cancelling .net-core asp.net-core

2
推荐指数
1
解决办法
2154
查看次数

后台工人类取消,设置取消待定标志但不退出

我叫obackgroundworker.CancelAsync(); 在一个后台工作者当前在另一个线程中做一些工作然后使用while(obackgroundworker.IsBusy == true)等待它在退出应用程序之前完成(如果用户在线程离开处理时改变主意并且我想要干净地关闭)

取消挂起的单位正确设置为true但线程没有退出,在工作线程中我有:

backgroundworker obackgroundworker = (backgroundworker)sender;
if (obackgroundworker.cancellationpending == true)
     e.cancel = true;              
Run Code Online (Sandbox Code Playgroud)

应检查取消是否待定,然后将取消的标志设置为true,我认为这也会导致线程实际终止...?或者,当检测到取消实际结束时,是否需要从线程调用其他函数?

我已经阅读了很多使用背景工作者的例子,并且没有报告任何问题.

资料来源:

http://www.albahari.com/threading/part3.aspx http://www.dotneat.net/2009/02/10/BackgroundworkerExample.aspx http://www.codeproject.com/KB/cpp/BackgroundWorker_Threads. ASPX

谢谢

c# backgroundworker request-cancelling

1
推荐指数
2
解决办法
4233
查看次数