我正在编写一个基于Angular的应用程序。它必须支持IE8 :-(当我在页面上有2000个双向绑定时,在IE8上加载页面的速度非常慢,浏览器实际上超时了。
下面是一个非常简单的页面,说明了这个问题。它在JavaScript中创建一个包含2000个对象的数组(不在DOM中),然后将该数组分配给范围中的变量。
这在IE9和Chrome中运行良好。有了500个双向绑定,IE8需要几秒钟。但是,在我的情况下,将页面上双向绑定的数量减少到少于2000将是非常困难的。
非常感谢我可以在几秒钟内用IE8加载2000双向绑定的任何解决方案。
<!doctype html>
<html xmlns:ng="http://angularjs.org" id="ng-app" ng-app="perfModule">
<head>
<script src="angular.min.js"></script>
<script>
function Phone(name, snippet) {
this.name = name;
this.snippet = snippet;
}
var perfModule = angular.module('perfModule', []);
perfModule.controller('perfCtrl', function ($scope) {
var phones = [];
for (var i = 0; i < 2000; i++) {
phones.push(new Phone('Nexus S', 'Fast just got faster with Nexus S.'));
}
$scope.phones = phones;
});
</script>
</head>
<body ng-controller="perfCtrl">
<ul>
<li ng-repeat="phone in phones">
{{$index}}: <input ng-model="phone.name"> {{phone.name}} - {{phone.snippet}}
</li>
</ul>
</body>
答案 0 :(得分:0)
试试这个:
直接在for循环中使用$ scope.phones,而不是将其分配给新的手机阵列。这可能会使数据更快地显示在屏幕上。