2012-03-06 2 views
2

온라인에서 아무것도 찾을 수 없으므로 가능하지 않은지 확인하십시오. KO 템플릿이 있는데 약 100 개의 레코드가 있습니다.별도의 '스레드'또는 비동기 적으로 템플릿에 바인딩을 적용하는 방법은 무엇입니까?

IE 8 (하위 최적의 JS 엔진으로 인해)에서 페이지를로드하는 데 약 15 초가 걸립니다. Firefox에서는 약 6 초가 걸립니다.

나는 IE에서 약 5 초가 ko.applyBindings으로 손실되었음을 확인했다.

바인딩을 비동기 적으로 적용 할 수 있습니까? 아마도 로딩 아이콘이있어서 KO가 템플릿을 처리하는 동안 사용자가 계속해서 페이지를 사용할 수 있습니다.

+0

을 다소 biiig 템플릿의 그 : 그 날 바인딩에서의 setTimeout을 사용하는 방법을 보여주는 jsFiddle으로 가고있어? 어쩌면 jsfiddle의 몇 가지 예가 있을까요? – AlfeG

+1

"별도의 코드를 실행하는"크로스 브라우저 방식으로 작업을 청크로 분할하고 결과적으로'setTimeout (process_some_part, 0);을 사용합니다. – kirilloid

답변

4

비슷한 문제가있었습니다. setTimeout은 여기에서 사용해야합니다. 내 응용 프로그램에서 I :

  1. Initalize는 뷰 모델 빈 (또는 상당히 빈)
  2. 때문에 모든 경우를 나타내는 모델에 종속 속성에 '기다려주십시오 ...'메시지를 표시하는 (바인딩 적용 데이터가로드 됨).

이 답이다 (나는 그냥 관찰 배열로 한 번에 10 개 개의 항목을 말할 밀어 것이다 있도록 데이터의 대부분을 보유하고 관찰 배열을 가정) 뷰 모델에 데이터의 덩어리를 추가

Show progress bar while knockout is rendering the view

+0

Perfect Thanks! –