我的情况
我有一个很大的人名单,他们都有自己的个人资料图片和信息。所有项目都有一些 CSS3 样式/动画。
我在用着:
<li ng-repeat="person in people">
people 是一个数组,其中包含来自外部 JSON 文件的 150 多个对象,所有对象都必须显示在同一页面上。
页面加载/渲染速度很慢,这不是因为 $http GET 函数与人一起获取 JSON 数据(只需要大约 100 毫秒),而是页面的渲染以及似乎应用到每个页面的所有 css3 样式的渲染项目(如果我关闭我的 CSS,它会变得更快)。
我的主要问题
我可以忍受缓慢的页面渲染,但我真正想要的是检测何时我的繁重页面加载了其内容,以便启动和停止加载指示器。我试过制定这样的指令:
directive("peopleList", function () {
return function (scope, element, attrs) {
scope.$watch("people", function (value) {
var val = value || null;
console.log("Loading started");
if (val){
console.log("Loading finished");
}
});
};
});
并将此指令放在加载我的人员列表的包装器 div 上。但是,每当我的带有 JSON 数据的对象被填充时,加载似乎就会停止,这只需要大约 100 毫秒,但页面的实际视觉呈现更像是 4-5 秒。
我也尝试过像http://jsfiddle.net/zdam/dBR2r/这样的解决方案,但我在那里得到了相同的结果。
我需要的
当我浏览我的页面(它们都有相同类型的列表)时,我需要一些东西来告诉我页面何时已完全加载并且对用户可见,以便我知道何时隐藏我的加载指示器。