有没有办法知道浏览器加载页面的距离?
通过使用 JavaScript 或浏览器本机函数。
根据页面状态我想建立进度条。
我不是 100% 确定这会起作用,但是.. 这是理论:
首先,在页面加载之前不要停止 JavaScript 的运行。意思是,不要使用 window.ready document.ready 等。
在页面顶部初始化一个 JavaScript 变量,称为加载或其他东西,并将其设置为 0。
var loaded = 0;
在您认为处于正确百分比的不同点加载的整个页面增量。
例如,在您认为一半的页面会在代码集中加载之后loaded = 50;
。
ETC..
正如我所说,这只是一个概念。
代码:
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
.
您必须自己确定它,并且要做到这一点,您必须有一种方法来确定它。一种可能性是在页面上有虚拟元素,知道它们的总数,并在每一点计算已经存在的数量。但这只会为您提供获得的 DOM 数量,而这可能只是加载时间的一小部分——通常情况下,浏览器处于空闲状态等待脚本和图像。