java - 在 Wicket 中为下载链接设置超时?

标签 java wicket

我刚开始使用 Wicket(并且真的不太熟悉很多 Web 开发)并且有一个关于下载链接的问题。我有一个网络应用程序,它只允许用户上传特定文件、处理文件中的某些信息,并提供不同格式的已处理信息的下载。然而,这实际上应该是我正在使用的某些软件的精简版,所以我真的不想做太多处理。我想知道是否有办法为下载链接设置超时,这样如果用户单击链接并且处理时间超过 20 秒左右,它将简单地退出处理并向他们发送错误反而。谢谢!

最佳答案

我同意 Xavi 的观点,即处理(以及可能的处理终止)应该用线程完成。

但是,特别是如果它花费的时间超过几秒钟,最好不要只是等待打开的连接,而是定期检查线程是否完成。

我会做这样的事情:

  1. 启动执行实际工作的线程
  2. 显示一个显示“正在处理您的下载”或类似内容的面板
  3. AbstractAjaxTimerBehavior 附加到面板,计时器持续时间为 10 秒左右。
  4. 在计时器行为的 onTimer 方法中,检查处理的状态:
    • 如果它还在工作,什么都不做。
    • 如果因为花费的时间太长而被取消,则向用户显示“已取消”之类的消息,例如通过更换面板或将警告标签设置为可见。
    • 如果完成,显示“您的下载正在开始”之类的消息并开始下载。参见 this document了解如何进行 AJAX 响应并同时启动下载

关于java - 在 Wicket 中为下载链接设置超时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12395452/

相关文章:

java - 在 Wicket 中使用 Javascript

java - 无法使用 DataNucleus GAE/J 插件版本 2 将字节代码增强为 JDO 3.0

java - 如何设置扫描区域 ZXing Scanner

java - 匿名类怎么可以有参数呢?

java - 使用 Wicket 无状态页面时,Bean 未正确注入(inject)另一个 Bean

java - 数据表中生成的标记

java - 如何使用wiremock模拟服务

java - 切换到选项卡式 Activity 中的第一个选项卡在 Android 中无法正常工作

java - 如何使用 Swing 创建一个简单的 Java 表单?

java - Wicket 口更改标签/文本字段值