当前位置: 首页 > 知识库问答 >
问题:

如何向JSF2.2 ajax请求添加客户端进度监听器?

余天宇
2023-03-14

我试图在JSF2.2Ajax请求中添加客户端进度条。理想的做法是获取请求头大小并接收post状态的更新。

我对js/jquery了解不多,但据我所知,jquery必须启动请求才能实现这一点(请参见此处)

PS1.虽然主要的范围为这,是一个文件上传进度条,我希望能够申请的全部请求大小。PS2.我知道有几个图书馆免费提供这一点,但ATM我不想使用任何。

共有1个答案

经正祥
2023-03-14

经过一些研究,这比最初出现的要复杂一点。

JSF和多个文件

首先,JSF2.2定义了 标记,该标记仅限于单个文件,即它不支持HTML5参数multiple=true。有关更多细节,请参见此。另一方面,很容易扩展该标记以允许多个文件,因为上传的文件是从请求中获取的,所以它们很容易获得。

为了实现服务器端进度监听器,您需要以某种方式自己处理文件,并使用polling或WebSockets通知用户进度。

对于客户端,您需要像这样编写自定义的post函数,或者使用像这样的库来处理post,因为大多数浏览器不提供进度信息。基本上,您不必使用浏览器的功能来执行post(AFAIK),而是自己处理请求,因此可以控制传输的字节。这里的问题是,FacesServlet需要一个由jsf.js函数格式化的请求,而我看不到一种简单的方法来拦截js请求,只用于处理文件上传。

那我有什么选择?

因为我是新手,所以不要把这个答案当作一个明确的答案来读,而是作为你自己研究的一个起点。

 类似资料:
  • 问题内容: 我正在尝试编写一个使用Jersey客户端API访问RESTful Web服务的库。该服务需要设置cookie的登录请求,然后后续请求必须将该cookie设置为成功。登录请求按预期方式工作,我能够从登录响应中检索cookie,但似乎无法在后续请求中重新添加cookie。谁能说出我可能做错了什么。这是发出请求的代码: 当请求没有失败时,服务将以应用程序错误“ No Session”进行响应

  • 我需要在我的Spring Boot应用程序中添加一个侦听器,在web中。看起来像是xml 我不用网络。xml配置,所以我有一个类 从上面的代码中可以看出,我已经向onStartup(ServletContext servletContext)方法添加了一个侦听器,但是它没有帮助,因为我仍然得到 这条消息。如何将侦听器正确添加到Spring Boot Application?

  • 上一步中我们已经定义好了Server接口,并进行了多次重构,但是实际上那个Server是没啥毛用的东西。现在要为其添加真正有用的功能。大师说了,饭要一口一口吃,衣服要一件一件脱,那么首先来定个小目标——启动ServerSocket监听请求,不要什么多线程不要什么NIO,先完成最简单的功能。下面还是一步一步来写代码并进行重构优化代码结构。 关于Socket和ServerSocket怎么用,网上很多文

  • 客户端的HTTP/HTTPS请求。 进程:主进程​ ClientRequest是由EventEmitter来实现Writable Stream​ new ClientRequest(options) 作用:发起新的HTTP/HTTPS请求 options(Object | String) - options是String时即请求URL。 options 是Object时则按以下属性请求: meth

  • 问题内容: 我在componentdidmount中有一个ajax调用。然后在ajax promise中设置setState。 代码是这样的 当我导航到其他路线时,这会导致错误“无法在未安装的组件上设置状态”。 所以我认为我应该做的是在componentwillunmount中删除axios监听器。你会怎么做? 问题答案: 一个非常简单的解决方案是在unmount上设置一个标志,并在promise

  • httplib 库主要用来模拟客户端发送 HTTP 请求,类似于 Curl 工具,支持 JQuery 类似的链式操作。使用起来相当的方便;通过如下方式进行安装: go get github.com/astaxie/beego/httplib 如何使用 首先导入包 import ( "github.com/astaxie/beego/httplib" ) 然后初始化请求方法,返回对象 r