html - 在大数据的 ng-repeat 性能下提高 angular js ng-class 性能

标签 html css angularjs

我正在做一个 angularJS 元素。我正在尝试使用 ng-repeat 在 View 中显示 5000 到 9000 行的主要 json 数据中的一部分数据。有一个表格数据标签,用于使用 css 图像显示复选框或单选按钮,代码如下。

<tr ng-repeat="o in main[menu].options" >
 <td style="width:10%;" class="radio" 
    ng-class="{checked: main[menu][active].active === o.instanceId}" 
    ng-click="main[menu][active].active = o.instanceId;"
    ng-if="menu === 'requiredOptionGroups'">
 </td>
 <td>..some other data...</td>
</tr>

对于复选框:

<tr ng-repeat="o in main[menu].options" >
 <td style="width: 10%;" class="checkbox" 
    ng-class="{checked: o.preSelect == 'true'}"
    ng-click="o.preSelect = o.preSelect=== 'false'?'true':'false';"
    ng-if="menu === 'optionalOptionGroups'" ng-model="o.preSelect">
 </td>
 <td>..some other data...</td>
</tr>

radio 和 checkbox 的 css 类如下:

.checkbox {
   cursor: pointer;
   background: url(./images/check_box_empty.png) no-repeat  center center;
   height: 22px;
   width: 22px;
   &.checked { background: url(./images/check_box_checked.png) no-repeat center center; }
    }
.radio {
   cursor: pointer;
   background: url(./images/radio_button_empty.png) no-repeat center center;
   height: 22px;
   width: 22px;
   &.checked { background: url(./images/radio_button_filled.png) no-repeat center center; }
}

我面临的问题是,当用户尝试单击单选按钮或复选框按钮时,在显示选中的图像之前会有明显的延迟。

该代码适用于小得多的数据。

是否有任何解决方法可以克服延迟。 我已在 link 搜索以提高性能但我们必须向用户显示所有数据

最佳答案

一个小的改进,不知道它是否会加速应用程序,可能是(假设你的 o.preSelect 是一个 bool 值而不是一个字符串)

替换

ng-class="{checked: o.preSelect == 'true'}"
ng-click="o.preSelect = o.preSelect=== 'false'?'true':'false';"

ng-class="{checked: o.preSelect}"
ng-click="o.preSelect = !o.preSelect"

但是对于 9000 行的表格,浏览器需要做很多更改元素的工作...

关于html - 在大数据的 ng-repeat 性能下提高 angular js ng-class 性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22679759/

相关文章:

html - 你能用显示器: table-cell and have a fixed width/height?吗

html - CSS 修改不适用于亚马逊 Kindle 云阅读器

javascript - 当我返回 angularJS 中的 ui-view 时,复选框未选中

php - RESTful API 身份验证流程

java - AngularJS 到 Java 服务器到支付网关返回到 AngularJS

javascript - 自动适应动态 div block

php - Ionic + Angular + PHP 未定义属性:insert.php 中的 stdClass::$variable

android - 需要在 HTML webview 中显示文本格式的数据,如 Stack Overflow

html - 如何创建媒体规则以水平居中绝对 div?

html - CSS:在不使用表格的情况下显示尽可能窄的图像列