计算并显示页面加载进度的百分比

我有一个加载器,在页面加载时加载。 我需要显示完成百分比。

我的应用程序包含大量的jquery和css,它还包含一个ajax调用。

截至目前,我已在页面加载开始时显示进度条,并在ajax成功完成时隐藏它。

此外,我已显示百分比,但使用以下代码手动增加:

function timeout_trigger() { $(".progress").css("max-width", p + "%"); $(".progress-view").text(p + "%"); if (p != 100) { setTimeout('timeout_trigger()', 50); } p++; } timeout_trigger(); 

这里的问题是,在进度达到100之前,页面加载并显示内容,因此加载器隐藏在两者之间 – 比如60% – 加载器被隐藏。

我想动态地计算页面加载完成的百分比(即,jquery加载时间,css加载时间等)并相应地增加进度。

请帮忙解决这个问题..

 function timeout_trigger() { $(".progress").css("max-width",p+"%"); $(".progress-view").text(p+"%"); if(p!=100) { setTimeout('timeout_trigger()', 50); } p++; } timeout_trigger(); 

只有当下载速度更快时,如果下载速度提高1%,此代码才有效。

必须是这样的:

 var size = file.getsize(); // file size function timeout_trigger() { var loaded = file.getLoaded(); // loaded part p = parseInt(loaded / size); $(".progress").css("max-width",p+"%"); $(".progress-view").text(p+"%"); if(p!=100) { setTimeout('timeout_trigger()', 20); } } timeout_trigger(); 

要实现方法getLoaded()您可以使用AJAX事件onprogress (我希望您正在加载文件异步)。 在此处查看监控进度部分https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest

你可以用这个:

来源: 在加载整个页面之前显示加载栏

脚本

  

HTML(在正文开头或结尾处)

 

CSS

 #overlay{ position:fixed; z-index:99999; top:0; left:0; bottom:0; right:0; background:rgba(0,0,0,0.9); transition: 1s 0.4s; } #progress{ height:1px; background:#fff; position:absolute; width:0; top:50%; transition: 1s; } #progstat{ font-size:0.7em; letter-spacing: 3px; position:absolute; top:50%; margin-top:-40px; width:100%; text-align:center; color:#fff; }