【发布时间】:2015-10-25 00:52:16
【问题描述】:
我编写了一个用于上传文件的 Servlet。在 UI 上,我想在 GWT 中显示文件上传的进度条。如何获取文件上传速度?
【问题讨论】:
标签: gwt
我编写了一个用于上传文件的 Servlet。在 UI 上,我想在 GWT 中显示文件上传的进度条。如何获取文件上传速度?
【问题讨论】:
标签: gwt
不依赖于“服务器推送”的某些服务器端助手的唯一方法是使用XMLHttpRequest 并使用其进度事件发送表单或文件(基本上支持everywhere but IE,所以你需要回退到 IE 中的基本形式)。不过,要使用 GWT 做到这一点,您必须使用 JSNI。
如果您绝对需要支持 IE(我的意思是显示上传进度,因为您可以轻松优雅地降级为标准表单上传),您需要服务器告知客户端进度;这意味着您需要一个带有“服务器推送”的反向通道。最简单的就是使用GWTUpload then 或者一些类似的第三方库。
对于显示,您可以使用<progress> element。在 GWT 中,最简单的方法是通过 HTMLPanel 中的 UiBinder 使用它:将其绑定到 Element @UiField 并使用 setPropertyDouble 等修改其属性。围绕通过Document.get().createElement("progress") 创建的进度元素创建Widget 相对容易。或者您可以使用第三方库(GWT-Bootstrap 或其他)或使用 <div> 元素和 CSS 创建进度条。同样,这取决于您想要/需要支持哪些浏览器。
【讨论】: