如何使用ajax 实现实时进度条
看了看楼上几位说的基本都是XMLHttpRequest这个对象的那个onprogress事件里面获取进度。
这个进度只是表示上传进度!!!
其实,我之前还遇到过需要知道一个相对较长的后端任务的进度的问题。
如果任务特别长,http连接可能断掉,那么就需要创建任务ID,使用ajax轮训进度。
如果任务没有那么长,但是服务器又不能立即返回,那么可以简单的更改一下响应超时时间,然后服务端使用chunked,一点点的把进度返回回来。浏览器会收多少,解析多少的。
好吧,我最近才完成的一个就是这种任务。主要看你的进度以何为划分了。
HTML我是用了bootstrap自带的进度条插件,我的工作是不停的用ajax上传文件,等待服务器端处理后返回,所以我这里显示浏览器端文件上传的进度(文件数、字节数,文件切片等自己看)。
如果你想一次ajax请求后等待服务器端执行,要求服务器端返回执行进度,可以约定好,服务器端先返回header中指定长度,每执行一定进度后,返回一个字节,这样浏览器端通过event就可以获知进度。具体还是参考我之前的问题吧
8 回答6.4k 阅读
1 回答4.2k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
2 回答3.2k 阅读
2 回答3.9k 阅读
3 回答1.7k 阅读✓ 已解决
1 回答2k 阅读✓ 已解决
用户AJAX提交操作,服务端生成一个任务ID,输出
服务端计算当前任务一共分几步
ajax 轮询一个JSON接口获取当前执行到了第几步
算百分比
完毕