3
knockout.js 2.0을 사용할 때 중첩 된 foreach 루프를 수행 할 때 성능이 매우 느립니다. 메인 루프는 약 70 개의 레코드가 반환되며 70 개의 json 레코드 안에있는 배열에는 0 - 20 개의 항목이 들어 있습니다. 그래서 저는 이것이 json 데이터가별로 없다고 생각합니다.중첩 된 foreach 루프가있는 knockout.js
난 그냥 아래의 코드를 테스트입니다 :
는<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에는 다른 필드가 있지만 단순하게하기 위해 필드를 제거했습니다.
덕분에, 매트
이 스레드를보십시오 : https://github.com/SteveSanderson/knockout/pull/272 및 github에서 최신 KO 버전으로 앱을 테스트 해보십시오. https://github.com/SteveSanderson/knockout/tree/master/build/output. KO 2.1에 포함될 몇 가지 훌륭한 개선 사항을 확인해야합니다. –
우리는 최신 knockout을 사용해 보았고 두 템플리트 모두 foreach 루프를 이름을 지정했지만 성능은 여전히 동일합니다. – Matthew