1

我有一个巨大的 xml 文件,我正在使用 xslt 进行转换。我还在页面加载时使用 jquery 做很多事情。基本上隐藏了很多div并在onclick后打开它们。因此,页面加载现在需要 2-3 秒。

我认为在加载时显示进度条会很好,这样用户就知道页面正在加载,而不是盯着白屏。在查找 jquery UI 进度条时,我发现它有一个 value 属性,它决定了进度条的长度。

$( "#progressbar" ).progressbar({ value: 37});

现在正如我已经告诉我的 js 文件有一个巨大$(document).ready(function() { ...... });的加载整个页面。我如何获得页面加载量的值,以便我可以将其传递给进度条的 value 属性?

4

1 回答 1

3

$(document).ready在加载 DOM 之前不会触发,所以这不会有太大帮助。

鉴于您不知道文档有多大(在您的 JavaScript 中),这将很难准确地完成。

一种解决方案可能是在文件顶部包含一些信息,以指示预期元素的可能性。然后,您可以计算 DOM 中的元素并了解您的完整性。

您可以使用计时器或间隔在文档准备好之前开始查看并继续查看,直到达到 100%;

if (document.getElementById('expected')) {
    var expected = parseInt(document.getElementById('expected').value, 10);
    var loaded = document.getElementsByTagName('div');
    var progress = (loaded / expected) * 100;
}

您需要expected靠近页面顶部的元素。

<input type="hidden" id="expected" value="50" />
于 2012-11-01T17:27:44.520 回答