上传大文件时,页面是要有信息反馈给用户,不能静止不动,用进度条很好的反馈了文件上传的进度信息,本文章中引用了jquery中的进度条,加以修改,适合跑在自己的设备上。
首先引用头文件: <script src=/jquery-1.9.1.js type=text/javascript></script>
<script src=/jquery-ui-1.10.3.custom.js\" type=text/javascript></script>
<link rel=stylesheet href=/jquery-ui-1.10.3.custom.css>
<style>
.ui-progressbar {
position: relative;
}
.progress-label{
position: absolute;
left: 50%%;
top: 4px;
font-weight: bold;
text-shadow: 1px 1px 0 #fff;
margin:-1px;
}
</style>
<script>
function loadbar(time) {
var temp;
temp=time;
var progressbar = $( "#progressbar" ),
"progressLabel = $( ".progress-label");
progressbar.progressbar({
"value: false,
change: function() {
"progressLabel.text( progressbar.progressbar( \"value\" ) + \"%%\");
"},
complete: function() {
progressLabel.text( "Complete!" );
}
});
function progress() {
var val = progressbar.progressbar( "value" ) || 0;
progressbar.progressbar( "value", val + 1 );
if ( val < 99 ) {
"window.parent.setTimeout(progress,temp);
}
}
window.parent.setTimeout(progress,0);
};
</script>
调用时首先要保证有id为progressbar的div:
<div id=progressbar >Loading... <div class=progress-label ></div></div>
调用方法: <input type=button value="上传" onclick=loadbar(60)>
该方法的进度条不是获取实时传送的进度,而是估计一个大大体的时间,让进度条走完,loadbar函数的参数即是所需的时间的换算成毫秒,再除以100,即每一个百分比所需要的时间。举例子说明一下,假设上传所需时间总共是3分钟,即180是,即180000ms,除以100,即1800ms,则传的参数即为loadbar(1800)
解释:调用jquery时, var progressbar = $( "#progressbar" )这句代码的意思其实就是:var progressbar =getElementById("progressbar");
jquery网站: http://jqueryui.com/progressbar/#label
原文:http://blog.csdn.net/woaipaiqiu/article/details/22777965