내 전제가 잘못되었습니다. AngularJS는 분명히 문제를 늦추고 있었지만, 아래에 설명 된 문제 때문이 아닙니다. 그러나 그것은 내 질문에 대한 flim의 대답이었습니다 - 각도 범위에서 요소를 제외하는 방법 -이를 증명할 수있었습니다.각도 범위에서 요소를 제외하려면 어떻게해야합니까?
나는 AJAX 가져온 데이터에서 d3 + Raphael을 사용하여 그래프를 생성하는 사이트를 구축하고 있습니다. 이 결과는 사용자가 렌더링 할 차트의 유형 (예 : 파이 수가 적고 라인 및 스택 막대의 수가 많음)에 따라 DOM에 SVG 또는 VML 요소가 많이 생성됩니다.
AngularJS가 제어하는 텍스트 필드에 텍스트를 입력하면 Firefox가 크롤링됩니다. 몇자를 입력 한 다음 갑자기 나타나기까지 2 ~ 3 초 정도 기다린 다음 몇 가지를 더 입력하는 등 (Chrome은 조금 더 잘 처리하는 것 같습니다.)
페이지에 그래프가없는 경우 사용자가 생성 할 데이터를 충분히 제공하지 못했다면),이 텍스트 필드의 내용을 편집하는 것이 좋습니다. I AngularJS는 DOM을 업데이트하려고 할 때 문제가 있으며 SVG 또는 VML 요소가 수백 가지가 있습니다.
그러나 그래프에는 AngularJS가 걱정할 필요가 전혀 없습니다. (그러나, UI 요소는 이전과 그래프 후에 모두가 관심을 지불이 필요합니까됩니다.) 나는이 개 솔루션의
을 생각할 수 :
는는 AngularJS와 컨트롤러 외부 그래프의 DIV를 넣어 실제로 원하는 위치에 CSS를 사용하십시오.
tell AngularJS - 어떻게 든 그래프의 DIV를 신경 쓰지 않습니다. 보기 및 모델을 동기화 할 때 건너 뛸 수 있습니다.
두 번째 옵션은 문서 레이아웃 제로/시맨틱을 유지하므로 나에게 바람직합니다. 이 일을 할 수있는 방법이 있습니까? (또는 내가 생각하지 못했던 좀 더 나은 해결책)
ng-non-bindale을 시도 했습니까? http://docs.angularjs.org/api/ng.directive:ngNonBindable –
Angular가 모든 SVG/VML 요소를 조사해야하는 이유는 무엇이라고 생각하십니까? 그 요소들은 Angular에 의해 생성됩니까? 그렇지 않다면 Angular는 그들을 보지 않습니다. Angular는 HTML 문서 (DOM)를 한 번만 컴파일합니다. http://docs.angularjs.org/guide/concepts#startup –
ng-non-bindable은 내가 찾고있는 것입니다! 그러나 Mark는 Raphael에 의해 생성 된 SVG/VML로 인해 Angular가 실제로 느리지는 않다는 것을 증명합니다. 이 블록을 무시하면 도움이되지 않습니다. 크롬에 문제가 없으므로 Firebug의 프로필러는 Chrome보다 정보가 부족하므로 속도가 어디서 느 렸는지 정확하게 알기가 어렵습니다 ... 계속 파고 있습니다. 필자의 초기 질문에 답하기 위해 필자는 전체적인 평가를하고 싶습니다. – Ben