ajax - 长时间运行的 Wicket Ajax 请求

标签 ajax timeout wicket

我的 Wicket 应用程序中偶尔会有一些长时间运行的 AJAX 请求。发生这种情况时,应用程序在很大程度上无法使用,因为在当前请求之后,后续的 AJAX 请求会排队等待同步处理。无论是否返回响应,我都希望请求在一段时间后终止(我有一个用户要求,如果发生这种情况,我们应该向用户显示错误消息并继续)。这提出了两个问题:

  • 有没有办法指定一个
    特定于 AJAX 的超时
    还是所有 AJAX 请求?
  • 如果没有,有没有办法杀死当前的请求?

  • 我查看了 wicket-ajax.js 文件,但没有看到任何关于请求超时的提及。

    我什至尝试在客户端超时后重新加载页面,但不幸的是,服务器仍在忙于处理原始 AJAX 请求,并且在 AJAX 请求完成处理之前不会返回。

    谢谢!

    最佳答案

    我认为让客户“取消”请求对您没有帮助。 (但是这可以工作。)

    关键是服务器正忙于处理不再需要的请求。如果您想超时此类操作,您必须在服务器端实现超时。如果操作花费的时间太长,那么服务器会中止它并返回一些错误值作为 Ajax 请求的结果。

    关于您的排队问题:尽管有同步请求,您可以考虑使用异步请求。这意味着客户端首先发送启动长时间运行进程的请求。该请求立即返回。然后客户端定期轮询服务器并询问该过程是否已完成。这些轮询请求也会立即返回,表示该进程仍在运行或已完成某个结果。

    关于ajax - 长时间运行的 Wicket Ajax 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2382732/

    相关文章:

    java - 是什么原因导致这个 ajax-upload javascript 错误?

    javascript - knockout.js 可以等到 onClick 才绑定(bind)吗?

    javascript - 使用 jQuery 的高效 AutoSuggest?

    javascript - 如何使用$.ajax读取本地xml文件?

    c# - 如何在C#中设置下载超时

    stream - wicket:如何从数据库中流式传输资源

    java - 带分页的数据表中的 Wicket 复选框

    javascript - ajax post 整数和字符串数组

    jquery - 持续运行 ajax 请求的更好方法?

    powershell - 在 powershell 脚本中添加超时部分