有没有办法知道浏览器加载页面的程度?
使用JavaScript或浏览器本机功能。
根据我要构建进度条的页面状态。
答案 0 :(得分:3)
我不是百分百肯定这会起作用,但是......这就是理论:
首先,不停止JavaScript运行,直到页面加载完毕。意思是,不要使用window.ready document.ready等..
在页面顶部初始化一个名为loaded或something的JavaScript变量并将其设置为0。
var loaded = 0;
整个页面增量在您认为处于正确百分比的不同点加载。
例如,您认为在代码集loaded = 50;
中加载了一半页面。
等。
正如我所说,这只是一个概念。
答案 1 :(得分:2)
代码:
function request() {
showLoading(); //calls a function which displays the loading message
myRequest = GetXmlHttpObject();
url = 'path/to/script.php';
myRequest.open('GET',url,true);
myRequest.onreadystatechange = function() {
if(myRequest.readyState == 4 && myRequest.status == 200) {
clearLoading(); //calls a function which removes the loading message
//show the response by, e.g. populating a div
//with the response received from the server
}
}
myRequest.send(null);
}
在请求开始时,我致电showLoading()
,使用Javascript动态添加preLoaderDiv
的等效内容。然后,当收到回复时,我会调用clearLoading()
,动态删除preLoaderDiv
的等效内容。
答案 2 :(得分:0)
你必须自己确定,要做到这一点,你必须有办法确定它。一种可能性是在页面上有虚拟元素,知道它们的总数,并在每个点计算已经存在的数量。但这只会给你获得的DOM数量,这可能是加载时间的一小部分 - 通常是浏览器空闲等待脚本和图像。