【发布时间】:2017-07-15 03:35:42
【问题描述】:
我正在尝试下载一个带有<h:commandButton> 的大文件,我想通过向用户显示“等待”模式来警告用户下载操作需要几秒钟/几分钟。
我的问题是我可以使用按钮的 onclick 事件显示图像,但我不知道在操作完成时如何隐藏它(这是显示下载文件的对话框弹出窗口时)。
我的代码是这样的:
<h:form id="form">
<h:commandButton value="Download"
action="#{bean.downloadFile()}"
onclick="showModal('waitModal')"/>
<div id="waitModal" class="modal fade" tabindex="-1"
role="dialog">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-body">
WAIT!
</div>
</div>
</div>
</div>
</h:form>
一个解决方案是在 bean 中使用一个标志并调用一个带有超时的 javascript 函数,该函数会检查标志的值并在下载完成时关闭模式,但这不是我想要的......它应该更通用,因为我必须在多个位置应用它
我知道有一些类似的问题,但我没有找到任何可以应用于我的问题的解决方案。
非常感谢!
【问题讨论】:
-
您考虑过使用 PrimeFaces 吗?他们在展示中为您的问题提供了一个示例:p:fileDownload。
-
我考虑过这个选项,但仅针对这种情况添加一个新框架并不是我们目前正在考虑的事情。谢谢!
标签: javascript jquery jsf jsf-2