2015-10-24 82 views

回答

3

不依靠某些服务器端帮助与“服务器推送”的唯一方法是发送表单或文件使用XMLHttpRequest并使用其进度事件(基本上支持everywhere but IE,所以你需要回退到IE中的基本形式)。为了做到这一点,你必须使用JSNI。如果你绝对需要支持IE浏览器(我的意思是显示上传进度,因为你可以很容易地降级到一个标准的表单上传),你需要服务器告诉客户有关进度;这意味着你需要一个带有“服务器推送”的后台通道。最简单的方法是使用GWTUpload或其他类似的第三方库。您可以使用<progress> element来显示。在GWT中,最简单的方法是在HTMLPanel内通过UiBinder使用它:将其绑定到Element@UiField并使用setPropertyDouble等修改其属性。围绕通过Document.get().createElement("progress")创建的进度元素创建Widget相对比较容易。或者你可以使用第三方库(GWT-Bootstrap或其他)或者创建一个<div>元素和CSS中的进度条。同样,这取决于您想要/需要支持哪些浏览器。