나는 큰 angularjs html 페이지를 가지고 있습니다. angularjs 렌더링에는 많은 시간이 걸릴 것입니다. 따라서 페이지는 처음에는 거의 비어 있으며, 잠시 후 갑자기 모든 것을 보여줍니다.anglejs가 빠른 부분을 먼저 표시하고 느린 부분을 렌더링하는 방법은 무엇입니까?
빠른 파트를 먼저 표시하고 느린 파트를 나중에 표시하므로 사용자가 빈 페이지에 놀라지 않을지 궁금합니다. - "빠른 이름"과 "느린 이름"당신은 두 부분이있다 볼 수 있습니다
<!DOCTYPE html>
<html ng-app>
<head>
<meta charset="UTF-8">
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.4/angular.js"></script>
</head>
<body ng-controller="Ctrl">
<button ng-click="go()">Go</button>
<hr/>
<div>Fast</div>
<button ng-repeat="name in fastNames">{{name}}</button>
<hr/>
<div>Slow</div>
<button ng-repeat="name in slowNames">{{name}}</button>
</body>
</html>
<script type="text/javascript">
function Ctrl($scope) {
$scope.fastNames = [];
$scope.slowNames = [];
$scope.go = function() {
$scope.fast();
$scope.slow();
}
$scope.fast = function() {
$scope.fastNames = ["F1", "F2"];
};
$scope.slow = function() {
for (var i = 0; i < 50000000; i++) {
new Date();
}
$scope.slowNames = ["S1", "S2"];
}
}
</script>
:
나는 간단한 데모를했다. 빠른 이름이 가능한 한 빨리 표시되고 느린 이름이 표시되기를 바랍니다. 그러나 지금은 처음에는 보여주지 않을 것이며, 잠시 후에 그들은 함께 보여줄 것입니다. http://plnkr.co/edit/9lW2TbLBkCB1hhgBVGmo?p=preview어떻게해야합니까 :
나는 라이브 데모를 만들어?
이동()가 반환까지,보기는 업데이트되지 않습니다. gofast()와 goslow() 두 부분으로 go() 함수를 나눕니다. goslow()가 시작되기 전에 gofast()가 돌아가도록 타임 아웃이나 뭔가를 호출하십시오. –
작동하는 것처럼 보입니다 :, 그러나 그것을하는 "angularjs way"입니까? '$ scope. $ digest()'를 수동으로 추가해야합니다. –
Freewind
방금 Chrome에서 작동하지만 Firefox에서는 작동하지 않는 것으로 나타났습니다. – Freewind