【发布时间】:2018-03-02 08:55:47
【问题描述】:
使用来自Vaadin manual 的代码我们有:
Button downloadButton = new Button("Download image");
FileDownloader fileDownloader = new FileDownloader(createResource());
fileDownloader.extend(downloadButton);
此示例代码的问题在于,有人可能会开始不停地快速单击downloadButton,并且会在用户单击时尽快生成动态创建的文件。有没有办法设置限制器,也就是说在 x 次之后阻止用户下载?此外,如果您快速单击此按钮,您会收到一个错误,特别是 DefaultErrorHandler。
至少我想要一种方法来防止某人下载文件超过 x 次。最好还有downloadButton.disableOnClick()之类的东西,但我似乎无法在下载完成后找到重新启用的方法,因为下载完成时没有通知你的钩子,但主要目标是阻止某人连续下载 50 倍。
【问题讨论】:
-
当你点击后禁用按钮?
-
主要问题是如何防止有人连续下载 50x。忽略这不是您如何重新启用按钮,而是何时?下载完成后,没有任何挂钩可让您知道。
-
可以阻止下载 10 秒然后重新启用它吗?
-
不是真的,因为我们确实有一些人需要稍微调整报告设置(更改日期)并重新运行它。基本上,我试图防止有人点击相同生成的报告的垃圾邮件。