2017-12-21 20 views
2

내 졸업 프로젝트에 Cytoscape.js 2.7.15을 사용하고 있으며 노드 레이블 변경과 같은 간단한 시각화가 필요합니다.Cytoscape.js eles.style 즉시 업데이트 변경

subjectNode.style ('label', myDesiredLabelToshow);

나를 위해 작동하지만 for 루프에서 사용하고 있으며 느리게 만들거나 디버그 모드에서 알고리즘이 어떻게 작동하는지보고 싶다면 노드의 레이블이 즉시 변경되지는 않습니다. 결국 내 기능이 끝난 후에 함께 변한다. (나는 기능의 범위를 끝내라는 뜻이다.)

cy.batch();cy.startBatch()도 사용하려고 시도했지만 Timeout을 설정하려고했지만 아무 것도 작동하지 않았습니다.

디버그 모드에서 cytoscape.js 파일을 추적 한 후 내가 어떻게 수동으로 사용자 정의 함수에서 그것을 실행할 수있는 함수 o.requestAnimationFrame = 기능을 .. 디버거 변경 내 그래프에 적용되는 명중 후 보았다?

+0

확실하지 않습니다. Cy.forceRender()를 루프에 추가하고 해당 줄 다음에 중단 점을 넣을 수 있습니까? –

+0

'cy.forceRender()'도 작동하지 않습니다. –

답변

0

거의 모든 렌더러는 requestAnimationFrame()을 사용하여 렌더 루프를 사용합니다. 즉 비동기식이므로 스테핑 중에 결과를 볼 수 없습니다.

대답은 모든 것이 동 기적으로 작동한다고 가정하기 때문에 중단 점이나 스테핑을 사용하지 않아도됩니다.

UI의 버튼을 사용하여 알고리즘의 포인트를 '단계별'사용하거나 약속 체인의 애니메이션을 사용하여 진행을 시각화합니다. 또는 UI 자체에 디버깅 단서를 표시하지 않고 단지 console.log()을 사용하십시오.