knockout.js с вложенным циклом foreach - PullRequest
3 голосов
/ 23 января 2012

Я работаю с knockout.js 2.0, и когда я делаю вложенный цикл foreach, производительность очень низкая. Основной цикл возвращает около 70 записей, а массив внутри этих 70 записей json содержит от 0 до 20 элементов. Так что я чувствую, что это не много данных JSON.

Я просто тестирую с кодом ниже:

    <table>
        <tbody data-bind="foreach: Employees, visible: Employees().length > 0">  
            <tr>                
                <td class="centerdata" data-bind="text: ID"></td>
                <td class="centerdata" data-bind="text: Name"></td>
                <td>
                   <table>
                       <tbody data-bind="foreach: $data.Transactions">  
                           <tr>   
                              <td data-bind="text:TransDate"></td>
                           </tr>
                       </tbody>
                   </table>
                </td>
            </tr>                    
        </tbody>
   </table>

Загрузка страницы занимает около 20 секунд. Внутри json есть и другие поля, но я удалил их для простоты.

Спасибо, Matt

1 Ответ

1 голос
/ 24 января 2012

Я думаю, здесь должно быть что-то еще, Мэтью.

Я быстро взбесился, используя вашу разметку с некоторыми фиктивными данными того же размера, что и вы, и производительность ~1 секунда в Chrome.

http://jsfiddle.net/unklefolk/DCLaR/

Существует ли зависимая наблюдаемая, которая рассчитывается повторно?Если это так, взгляните на функциональность дроссельной заслонки (http://knockoutjs.com/documentation/throttle-extender.html)

...