4

有没有办法知道浏览器加载页面的距离?

通过使用 JavaScript 或浏览器本机函数。

根据页面状态我想建立进度条。

4

3 回答 3

3

我不是 100% 确定这会起作用,但是.. 这是理论:

首先,在页面加载之前不要停止 JavaScript 的运行。意思是,不要使用 window.ready document.ready 等。

在页面顶部初始化一个 JavaScript 变量,称为加载或其他东西,并将其设置为 0。

var loaded = 0;

在您认为处于正确百分比的不同点加载的整个页面增量。

例如,在您认为一半的页面会在代码集中加载之后loaded = 50;

ETC..

正如我所说,这只是一个概念。

于 2013-02-20T13:01:56.320 回答
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.

于 2013-02-20T13:04:36.623 回答
0

您必须自己确定它,并且要做到这一点,您必须有一种方法来确定它。一种可能性是在页面上有虚拟元素,知道它们的总数,并在每一点计算已经存在的数量。但这只会为您提供获得的 DOM 数量,而这可能只是加载时间的一小部分——通常情况下,浏览器处于空闲状态等待脚本和图像。

于 2013-02-20T13:00:10.703 回答