如何找出页面已加载的百分比以更新jQuery UI progressbar?
我有一个巨大的xml文件,我正在使用xslt转换它。我还在页面加载上使用jquery做很多事情。基本上隐藏了很多div,并在onclick之后打开它们。因此,页面加载现在需要2-3秒 我认为最好在加载时显示progressbar,这样用户就知道页面正在加载,而不是盯着白色屏幕。在查找jQueryUIProgressBar时,我发现它有一个值属性,它决定了条的长度如何找出页面已加载的百分比以更新jQuery UI progressbar?,jquery,xml,jquery-ui,xslt,progress-bar,Jquery,Xml,Jquery Ui,Xslt,Progress Bar,我有一个巨大的xml文件,我正在使用xslt转换它。我还在页面加载上使用jquery做很多事情。基本上隐藏了很多div,并在onclick之后打开它们。因此,页面加载现在需要2-3秒 我认为最好在加载时显示progressbar,这样用户就知道页面正在加载,而不是盯着白色屏幕。在查找jQueryUIProgressBar时,我发现它有一个值属性,它决定了条的长度 $( "#progressbar" ).progressbar({ value: 37}); 现在,正如我已经告诉我的js文件有一个
$( "#progressbar" ).progressbar({ value: 37});
现在,正如我已经告诉我的js文件有一个巨大的$(document).ready(function(){……})代码>加载整个页面。如何获取页面已加载量的值,以便将其传递给progressbar的value属性 $(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;
}
您需要靠近页面顶部的预期的元素
<input type="hidden" id="expected" value="50" />
最好只显示一个不确定的进度条。在函数中的各个点,根据您估计的进度更新进度条的值。“$(文档)。在加载DOM之前准备就绪”它是在DOM准备就绪时启动的,而不是在加载时启动的。@KevinB,这里的区别是什么?DOM只有在完全加载后才准备就绪,但事实并非如此。在完成图像加载之前,DOM已准备就绪。(忽略IE6/7/8中domready启动太晚的错误)加载DOM时DOM已准备就绪。这不包括图像。在加载最后一个元素之前,DOM无法就绪。