页面加载状态

时间:2013-02-20 12:50:34

标签: javascript jquery html browser

有没有办法知道浏览器加载页面的程度?

使用JavaScript或浏览器本机功能。

根据我要构建进度条的页面状态。

3 个答案:

答案 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数量,这可能是加载时间的一小部分 - 通常是浏览器空闲等待脚本和图像。