网页加载的进度条是什么原理?用javascript做。

网页加载的进度条是什么原理?用javascript做。,第1张

思路:进度条的总长度:进度条的当前长度 = 数据总长度:数据当前加载长度。

代码:

<style>    

* {margin:0px padding:0px}    

.box {height:40px width:500px background:#ccc border:1px solid #ccc position:relative margin:100px auto}    

.box #div1 {height:100% width:0% background:green }    

span {position:absolute top:0 left:0 line-height:40px width:100% height:100% text-align:center font-size:28px font-weight:bold color:#fff}    

</style>    

<script>    

window.onload=function(){    

var oDiv = document.getElementById('div1')    

var oTxt = document.getElementById('txt')    

var count = 0    

var total = 77    

for(var i=0i<77i++)    

{    

var oImg = new Image()    

oImg.src= 'http://www.zhinengshe.com/works/3525/img/'+i+'.jpg'    

oImg.onload=function(){    

count++    

oDiv.style.width= Math.floor((count/total)*100) + '%'    

oTxt.innerHTML = Math.floor((count/total)*100) + '%'

    

}    

}    

    

    

}    

</script>    

</head>    

<body>    

<div class="box">    

<div id="div1"></div>    

<span id="txt"></span>    

</div>    

</body>

这个很难实现的,因为要想实现准确的进度条,就必须知道要下载的总字节数和当前已下载的字节数,总字节数除了html文件本身,还有里面的各种对象如图片、动画、css文件、js文件等的字节数,还要区分哪些是从电脑的cache取出的,哪些是从服务器下载的,有些数据要等到页面完全下载完毕才能得到,这马后炮有什么用呢。IE浏览器本身的进度条都无法做到准确呢,何况用JS?

一般都是用个动态GIF图片或Falsh循环滚动一下糊弄糊弄用户就行了。我还没见过能精确计算出加载进度的网站,如果有,那我只能说他们糊弄的技术很牛B


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11953886.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-19
下一篇2023-05-19

发表评论

登录后才能评论

评论列表(0条)

    保存