是否有可能获得XMLHttpRequest的进度(上传的字节数,下载的字节数)?
当用户上传大文件时,这对于显示进度条很有用.标准API似乎不支持它,但也许在那里的任何浏览器中都有一些非标准扩展?毕竟,这似乎是一个非常明显的功能,因为客户端知道上载/下载了多少字节.
注意:我知道"轮询服务器进度"替代方案(这就是我现在正在做的事情).这个问题的主要问题(除了复杂的服务器端代码)通常是,在上传大文件时,用户的连接是完全没有的,因为大多数ISP提供了较差的上游.因此,提出额外请求并不像我希望的那样响应.我希望有一种方法(可能是非标准的)来获取这些信息,浏览器始终拥有这些信息.
我有一个页面,它使用jquery的ajax函数来发送一些消息.
可能会有超过50k的消息要发送.
这显然需要一些时间.
我要做的是显示一个进度条,其中包含正在发送的消息.
后端是PHP.
我怎样才能做到这一点?
这将在原始脚本继续时更新.
一个函数被设置为调用 progress(ident)
该函数对读取百分比的脚本进行ajax调用.
更新进度条如果返回的百分比不是100,则
该函数设置超时,该超时在1秒后调用自身.
我正在尝试使用Ajax下载文件并显示自定义下载进度条.
问题是我无法理解如何这样做.我编写了代码来记录进度,但不知道如何启动下载.
注意:文件类型不同.
提前致谢.
JS
// Downloading of files
filelist.on('click', '.download_link', function(e){
e.preventDefault();
var id = $(this).data('id');
$(this).parent().addClass("download_start");
$.ajax({
xhr: function () {
var xhr = new window.XMLHttpRequest();
// Handle Download Progress
xhr.addEventListener("progress", function (evt) {
if(evt.lengthComputable) {
var percentComplete = evt.loaded / evt.total;
console.log(percentComplete);
}
}, false);
return xhr;
},
complete: function () {
console.log("Request finished");
}
})
});
Run Code Online (Sandbox Code Playgroud)
HTML和PHP
<li>
<div class="f_icon"><img src="' . $ico_path . '"></div>
<div class="left_wing">
<div class="progressbar"></div>
<a class="download_link" href="#" id="'.$file_id.'"><div class="f_name">' …Run Code Online (Sandbox Code Playgroud) 名为mega.com的文件共享网站具有创建自定义下载管理器的功能.下载文件时,它会在网站上显示自定义进度条(可能是将文件加载到缓存中),然后为缓存文件创建下载提示.如何用javascript生成这个?
我正在寻找一个大的映射/小部件javascript文件(1.3 MB),并希望在加载时显示进度条.我知道firebug的网表标签知道很多这方面的信息,但我想要更轻量级的东西.我遇到过这个网站:http: //blog.greweb.fr/2012/04/work-in-progress/
这几乎让我在那里,除了我需要源我正在下载的文件.当文件下载时,我没有在jQuery的getScript上看到任何监听器.有谁知道如何获得源文件下载的进度?
提前致谢!