【发布时间】:2019-07-31 08:41:02
【问题描述】:
我正在从服务器获取数据,它的加载时间非常好,但是
同时将所有数据呈现近 3k 行以查看(angularJs)浏览器
冻结,一段时间后它也崩溃了。
我尝试了分页,但在跨越 500 行后它开始冻结。有时它会将所有数据加载到视图中,但在滚动或应用某些事件(如再次单击)时会冻结。
这是我列出所有数据的代码。
<div class="divRow" ng-repeat="list in campaignDetailListfilterCopy.campaign_items | limitTo:totalDisplayed"">
<div class="divCell">
<div style="float:left;width: 325px;">
<div>
<span ng-if="list.monitor_type == 3">{{list.items.media_id}}</span>
<div class="moImgPreview hoverPreview creativePreview"> <img alt=""ng-src="{{list.items.media_thumbnail}}"/></div>
</span>
</div>
<p><strong class="lang" key="campaign_List_view_text2">Location</strong><span>{{list.items.media_address}}</span> </p>
</div>
</div>
<button class="btn" ng-click="loadMore()">Load more</button>
//the controller
$scope.totalDisplayed = 20;
$scope.loadMore = function () {
$scope.totalDisplayed += 20;
};
$scope.campaignDetailListfilterCopy.campaign_items = data;
【问题讨论】:
-
500 行不适合任何会加载您网站的屏幕。尝试加载多达 2 个屏幕的项目,并且仅在用户需要时加载更多项目。我不知道你的行有多大,但我想说 50-75 行应该是你一次应该渲染的最大值
-
500 行的意思是,在点击从 20 行加载更多以增加 500 行之后,就会出现问题
-
此时再添加 50 个,而不是 500 个
-
另外,你是一一添加还是同时添加?
-
我必须显示 2k 行。最初我显示 20 行,并且有一个按钮可以加载更多,在单击加载更多后,它会从数据中加载 20 多行(已经从服务器加载数据)。现在,当它达到 500 或更多行时,一次又一次地点击加载更多,然后浏览器在下一次加载更多点击时冻结
标签: javascript angularjs angularjs-directive angularjs-ng-repeat lazy-loading