js怎么实现进度条!
假如我有这样的一个代码:for(vari=0;i<100;i++){for(varj=0;j<10000;j++){}//在这里实现进度条,也就是第二个for循环执行完之...
假如我有这样的一个代码:
for(var i=0;i<100;i++)
{
for(var j=0;j<10000;j++)
{
}
//在这里实现进度条,也就是第二个for循环执行完之后进度条增加一个单位,第一个for循环执行完之后,整个进度条就满了
//刚开始我是这样做的,有两个<div>,第一个的width=100px,第二个的为0px,当第二个for循环执行完后,
var width = $("#progressBar").width();
width+=1;
$("#progressBar").width(width);
但最终结果进度条不是一步一步增加的,而是等所有循环执行完后,才一次满的!
}
我在csdn中也找了些插件,但基本都是用setinterval或则settimeout来设置,感觉着根本不是程序真正的执行过程。
所以想请问大虾门有没有好的代码或则建议,谢谢!! 展开
for(var i=0;i<100;i++)
{
for(var j=0;j<10000;j++)
{
}
//在这里实现进度条,也就是第二个for循环执行完之后进度条增加一个单位,第一个for循环执行完之后,整个进度条就满了
//刚开始我是这样做的,有两个<div>,第一个的width=100px,第二个的为0px,当第二个for循环执行完后,
var width = $("#progressBar").width();
width+=1;
$("#progressBar").width(width);
但最终结果进度条不是一步一步增加的,而是等所有循环执行完后,才一次满的!
}
我在csdn中也找了些插件,但基本都是用setinterval或则settimeout来设置,感觉着根本不是程序真正的执行过程。
所以想请问大虾门有没有好的代码或则建议,谢谢!! 展开
3个回答
展开全部
<!DOCTYPE ">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>进度条</title>
<style type="text/css">
body{
text-align:center;
}
.graph{
width:450px;
border:1px solid #F8B3D0;
height:25px;
}
#bar{
display:block;
background:#FFE7F4;
float:left;
height:100%;
text-align:center;
}
#barNum{
position:absolute;
}
</style>
<script type="text/javascript">
function $(obj){ //封装方法,相当于jQuery
return document.getElementById(obj);
}
function go(){
$("bar").style.width = parseInt($("bar").style.width) + 1 + "%";
$("bar").innerHTML = $("bar").style.width;
if($("bar").style.width == "100%"){
window.clearInterval(bar); //进度为100时清除定时器
}
}
var bar = window.setInterval("go()",50); //设置定时器
window.onload = function(){
bar;
}
</script>
</head>
<body>
<div class="graph">
<strong id="bar" style="width:1%;"></strong>
</div>
</body>
</html>
展开全部
就是要用setInterval setTimeout
慢慢的改变div的宽,好像一点一点涨到100%
for(var i=0;i<100;i++)
{
for(var j=0;j<10000;j++)
{
var width = $("#progressBar").width();
width+=1;
$("#progressBar").width(width);
//这样不行 是因为for循环在很短的时间内执行完毕你根本看不出来
}
}
慢慢的改变div的宽,好像一点一点涨到100%
for(var i=0;i<100;i++)
{
for(var j=0;j<10000;j++)
{
var width = $("#progressBar").width();
width+=1;
$("#progressBar").width(width);
//这样不行 是因为for循环在很短的时间内执行完毕你根本看不出来
}
}
更多追问追答
追问
我也知道很短啊 所以特意弄两套for循环,当然我也可以将j<10000000.
用setInterval setTimeout是自己指定的时间来执行进度条,而不是程序运行时的进度啊,那有什么用啊?
追答
。。那你弄for有用?
你这是for的执行时间还是整个程序?
多线程 或异步的时候才有这个进度条的吧
比如文件上传
setTimeout 或setInterval 定时请求后端,查询上传进度,然后在js修改进度条
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
程序后台运行只能用ajax向前台一次性输出结果。
追问
这和后台有什么关系啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询